Возник вопрос про локальные объявления функций. Есть следующий скрипт и его вывод: (defun f1 (f com) (format t "~&fi. com: ~S" com) (defun f2 (n) (if (= n 0) (format t "~&if. com: ~S" com) (f2 (- n 1))) 1) (f2 (funcall f))) (defun f2 (n) (defun f () (f1 #'(lambda () n) "x")) (f1 #'f "y")) (f3 1) # clisp ./a.lisp fi. com: "y" fi. com: "x" if. com: "x" if. com: "x" Однако вывод при его выполнении с небольшими изменениями: (defun f1 (f com) (format t "~&fi. com: ~S" com) (defun f2 (n) (format t "~&if. com: ~S" com)) 1) (f2 (funcall f))) (defun f2 (n) (defun f () (f1 #'(lambda () n) "x")) (f1 #'f "y")) (f3 1) # clisp ./a.lisp fi. com: "y" fi. com: "x" if. com: "x" if. com: "y"


Ответ на:
Copy-paste error?
от Dselect

Ответ на:
комментарий
от balodja
Ответ на:
комментарий
от balodja
Ответ на:
комментарий
от mv

Ответ на:
комментарий
от balodja

Ответ на:
комментарий
от balodja

Ответ на:
комментарий
от balodja
Ответ на:
комментарий
от balodja

Ответ на:
комментарий
от vasily_pupkin
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Отличия EmacsLisp и CommonLisp (2007)
- Форум Closure в ELisp (XEmacs!) не работает :( (2005)
- Форум lisp, деструктивная функция (2007)
- Форум defmacro -> defun (2012)
- Форум gtk, и под микроскопом не вижу (2010)
- Форум [lisp]использование compiler-macro (2008)
- Форум [GIT] Как синхронизировать каталог по принципу «удаленное удаляем, измененное изменяем, добавленное добавляем» ? (2011)
- Форум Не учите Common Lisp! (2025)
- Форум [Emacs] lisp eval defun (2010)
- Форум [CL] defun и setf (2009)