История изменений
Исправление no-such-file, (текущая версия) :
(defun list-reverse (list n)
(do ((c n (1- c))
(collected (list) (cons (first remaining) collected))
(remaining list (rest remaining)))
((= c 0) collected)))
(z 1 (- n 1))
Так не работает же, z не меняется.
(n (- n 1))
А тут нет обновления (- n 1)
используется как начальное значение, т.е. тоже не меняется.
(y '() (cons (car x) y)))
Всё хорошо, только литерал списка использовать нежелательно. Почему нежелательно объясняется в книжке On Lisp (ЕМНИП)
(defvar n) (setq n 3)
Зачем ты так пишешь, если можно (defvar n 3)
? Звёздочки тоже желательно добавлять, а то непонятно, что n имеет динамическую видимость.
Исправление no-such-file, :
(defun list-reverse (list n)
(do ((c n (1- c))
(collected (list) (cons (first remaining) collected))
(remaining list (rest remaining)))
((= c 0) collected)))
(z 1 (- n 1))
Так не работает же, z не меняется.
(n (- n 1))
А тут нет обновления (- n 1)
используется как начальное значение, т.е. тоже не меняется.
(y '() (cons (car x) y)))
Всё хорошо, только литерал списка использовать нежелательно. Почему нежелательно объясняется в книжке On Lisp.
(defvar n) (setq n 3)
Зачем ты так пишешь, если можно (defvar n 3)
? Звёздочки тоже желательно добавлять, а то непонятно, что n имеет динамическую видимость.
Исходная версия no-such-file, :
(defun list-reverse (list n)
(do ((c n (1- c))
(collected (list) (cons (first remaining) collected))
(remaining list (rest remaining)))
((= c 0) collected)))
(z 1 (- n 1))
Так у тебя глобальная переменная меняется. Будет работать только первый раз.
(n (- n 1))
А тут нет обновления (- n 1)
используется как начальное значение.
(y '() (cons (car x) y)))
Всё хорошо, только литерал списка использовать нежелательно. Почему нежелательно объясняется в книжке On Lisp.
(defvar n) (setq n 3)
Зачем ты так пишешь, если можно (defvar n 3)
? Звёздочки тоже желательно добавлять, а то непонятно, что n имеет динамическую видимость.