prog ...

Как в Erlang или том же Rebol, в Picolisp активно используются “refinement-ы” в обозначении функций, акцентируя таким образом в определенном виде полиморфизм. Но иногда, это просто “индексный” суффикс. Почему, пока не понятно. Вложен ли здесь какой-то дополнительный смысл или тривиальная небрежность, загадка …
prog - выполняет prg
и возвращает результат последнего выражения.
(prog . prg) -> any
prog1 - выполняет все аргументы и возвращает результат первого выражения any1
(prog1 'any1 . prg) -> any1
prog2 - выполняет все аргументы и возвращает результат второго выражения any2
.
(prog2 'any1 'any2 . prg) -> any2
https://picolisp.tiddlyhost.com/#prog
: (prog (print 1) (print 2) (print 3))
123-> 3
: (prog1 (print 1) (print 2) (print 3))
123-> 1
: (prog2 (print 1) (print 2) (print 3))
123-> 2
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
Всегда чему-то учусь!