Macro @
(
@ fn-or-collection
&rest
args
)
A little hack with two purposes: (1) to make it easy to make FSet maps
behave like Lisp functions in certain contexts; and (2) to somewhat lessen the
pain of writing higher-order code in a two-namespace Lisp like Common Lisp.
The idea is that you can write (@ fn arg)
, and if fn
is a Lisp function,
it will be funcalled on the argument; otherwise lookup
(q.v.) will be called
on fn
and arg
. To allow for @
to be used in more contexts, it actually
can take any number of args
, though lookup
always takes exactly two. Thus
you can write (@ fn arg1 arg2 ...)
when you just want a shorter name for
funcall
. As a matter of style, it is suggested that @
be used only for
side-effect-free functions. Also, though this doc string has spoken only of
FSet maps, @
can be used with any type that lookup
works on. Can be used
with setf
, but only on collections, not functions, of course.