fin ...

Sergey ShishkinSergey Shishkin
1 min read

fin - возвращает any, если это атом, в противном случае CDR его последней ячейки.

(fin 'any) -> num|sym

: (fin 'a)
-> a
: (fin '(a . b))
-> b
: (fin '(a b . c))
-> c
: (fin '(a b c))
-> NIL

finally - prg выполняется, затем вычисляется exe, и возвращается результат prg. exe также будет вычислен, если prg не завершается нормально из-за ошибки времени выполнения или вызова throw.

(finally exe . prg) -> any

: (finally (prinl "Done!")
   (println 123)
   (quit)
   (println 456) )
123
Done!
: (catch 'A
   (finally (prinl "Done!")
      (println 1)
      (throw 'A 123)
      (println 2) ) )
1
Done!
-> 123

finish - помещает выражения в prg в глобальный *Bye в обратном порядке для выполнения непосредственно перед завершением работы интерпретатора PicoLisp. (finish (foo) (bar)) эквивалентно (push 'Bye '(bar) '(foo))

(finish . prg) -> exe

: (finish (call "rm" "myfile.tmp"))  # Remove a temporary file
-> (c

https://picolisp.tiddlyhost.com/#fin

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

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