fun ... fun?

Sergey ShishkinSergey Shishkin
1 min read

fun - применяет fun к аргументам any. (fun foo 'args) эквивалентно (foo 'args), а (fun (expr) 'args) эквивалентно ((expr) 'args)

: (find fun '(sym? ((X) (> X 3)) num?) 'a)
-> sym?
: (find fun '(sym? ((X) (> X 3)) num?) 3)
-> num?
: (find fun '(sym? ((X) (> X 3)) num?) 4)
-> ((X) (> X 3))

fun? - возвращает NIL, когда аргумент any не является ни числом, подходящим для указателя кода, ни списком, подходящим для лямбда-выражения (функции). В противном случае возвращается число для указателя кода, T для функции без аргументов и один формальный параметр или список формальных параметров для функции.

: (fun? 1000000000)              # Might be a code pointer
-> 1000000000
: (fun? 10000000000000000000)    # Too big for a code pointer
-> NIL
: (fun? '((A B) (* A B)))        # Lambda expression
-> (A B)
: (fun? '((A B) (* A B) . C))    # Not a lambda expression
-> NIL
: (fun? '(1 2 3 4))              # Not a lambda expression
-> NIL
: (fun? '((A 2 B) (* A B)))      # Not a lambda expression
-> NIL

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

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

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