blob: 967fde12e9f6140bc78a3231053f3e0917e06b5c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
This package implements a macro named ##, which provides a compact way
to write short lambda expressions.
The signature of the macro is (## FN &rest BODY) and it expands to a
lambda expression, which calls the function FN with the arguments BODY
and returns the value of that. The arguments of the lambda expression
are derived from symbols found in BODY.
Each symbol from %1 through %9, which appears in an unquoted part of
BODY, specifies a mandatory argument. Each symbol from &1 through &9,
which appears in an unquoted part of BODY, specifies an optional
argument. The symbol &* specifies extra (&rest) arguments.
The shorter symbol % can be used instead of %1, but using both in the
same expression is not allowed. Likewise & can be used instead of
&1. These shorthands are not recognized in function position.
To support binding forms that use a vector as VARLIST (such as -let
from the dash package), argument symbols are also detected inside of
vectors.
|