Подтвердить что ты не робот

Какая разница между "flet" и "label" в Common Lisp?

Является ли он похожим на setq и setf? Нет большой разницы между flet и labels?

С уважением!

4b9b3361

Ответ 1

В Common Lisp, как flet, так и labels делают лексические привязки немного разных сортов:

  • flet - специальная форма для связывания локальной функции. Привязки не являются рекурсивными и не могут ссылаться друг на друга. Каждая привязка содержит имя функции, аргументы и тело функции.

  • labels является специальной формой для связывания локальной функции. Привязки могут быть рекурсивными и могут ссылаться друг на друга. Каждая привязка содержит имя функции, аргументы и тело функции.

В Emacs Lisp существует небольшая разница. Форма меток подобна flet, за исключением того, что она делает лексические привязки имен функций, а не динамических привязок.