Skip to main content

Command Palette

Search for a command to run...

recurse

Updated
1 min readView as Markdown
S

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

(recur fun) -> any

(recurse ..) -> any

Реализует анонимную рекурсию, определяя функцию recurse на лету. Во время выполнения fun символ recurse привязан к определению функции fun.

https://software-lab.de/doc/refR.html#recur

Важная концепция и безусловно интересна её реализация в PicoLisp. Как к концепции, к этой теме есть планы вернуться специально. Здесь же только можно заметить, что концепция связана с другой концепцией lambda. Реализация в документации описана достаточно подробно и с большим количеством примеров, см. обе предыдущие ссылки. В связи с этим акцентируется внимание на механизме привязки символов к определениям. Рассматриваются нюансы, например, когда CAR список символов или символ.

“Лямбда-выражение всегда имеет список исполняемых выражений в качестве своего CDR. Однако CAR должен быть либо списком символов, либо одним символом, и он управляет оценкой аргументов исполняемой функции в соответствии со следующими правилами … ” (цитата по ссылке lambda).

Реализована оптимизации “хвостового вызова“, о чем будет ещё замечено в контексте соответствующих функций.

More from this blog

Нетривиальный Repl

Это плавный переход от eval к loop к циклам и где уместно вспомнить, что эта тема уже затрагивалась в контексте самой часто употребляемой функции for и рекурсии. Repl как функция не анонсирована в документации, но есть авторская классификация в файла...

Jul 15, 20257 min read
A

abrakadabra

195 posts

Метамоделирование как интеграция философии, лингвистики и математики на базе информатики. Анализ теорий и практик программирования. Прецеденты оптимизации.