prog ...

Sergey ShishkinSergey Shishkin
1 min read

Как в 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
0
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

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