fun ... fun?

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
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
Всегда чему-то учусь!