Какая разница между "flet" и "label" в Common Lisp?
Является ли он похожим на setq и setf? Нет большой разницы между flet и labels?
С уважением!
Ответ 1
В Common Lisp, как flet, так и labels делают лексические привязки немного разных сортов:
flet - специальная форма для связывания локальной функции. Привязки не являются рекурсивными и не могут ссылаться друг на друга. Каждая привязка содержит имя функции, аргументы и тело функции.
labels является специальной формой для связывания локальной функции. Привязки могут быть рекурсивными и могут ссылаться друг на друга. Каждая привязка содержит имя функции, аргументы и тело функции.
В Emacs Lisp существует небольшая разница. Форма меток подобна flet, за исключением того, что она делает лексические привязки имен функций, а не динамических привязок.