Возник вопрос про локальные объявления функций. Есть следующий скрипт и его вывод: (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)
- Форум [lisp][замыкания] что-то важное упускаю (2009)
- Форум Closure в ELisp (XEmacs!) не работает :( (2005)
- Форум Как скрыть загрузку модулей ? (2017)
- Форум Замыкания в lisp (2011)
- Форум lisp, деструктивная функция (2007)
- Форум читал старые треды лора (2009)
- Форум Создать буфер в нужном режиме (2020)
- Форум Имплементация defvar. (2008)
- Форум [cl][макросы чтения] Вопрос по примеру из Let over lambda (2009)