recurse

(recur fun) -> any
(recurse ..) -> any
Реализует анонимную рекурсию, определяя функцию recurse на лету. Во время выполнения fun
символ recurse привязан к определению функции fun
.
https://software-lab.de/doc/refR.html#recur
Важная концепция и безусловно интересна её реализация в PicoLisp. Как к концепции, к этой теме есть планы вернуться специально. Здесь же только можно заметить, что концепция связана с другой концепцией lambda. Реализация в документации описана достаточно подробно и с большим количеством примеров, см. обе предыдущие ссылки. В связи с этим акцентируется внимание на механизме привязки символов к определениям. Рассматриваются нюансы, например, когда CAR
список символов или символ.
“Лямбда-выражение всегда имеет список исполняемых выражений в качестве своего CDR
. Однако CAR
должен быть либо списком символов, либо одним символом, и он управляет оценкой аргументов исполняемой функции в соответствии со следующими правилами … ” (цитата по ссылке lambda).
Реализована оптимизации “хвостового вызова“, о чем будет ещё замечено в контексте соответствующих функций.
Subscribe to my newsletter
Read articles from Sergey Shishkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Sergey Shishkin
Sergey Shishkin
Всегда чему-то учусь!