Description
Write lambdas without naming the parameters.
Description
Write lambdas without naming the parameters. Example:
[s| ı : ı : _ı : ı : _ı : _ı : _0 : [] |] 'a' 'b' 'c'
= (\x y z -> x:y:y:z:z:z:x:[]) 'a' 'b' 'c'
= "abbccca"
The unicode character ı
(U+0131, not the number 1
!) representing a 'slot' can be input in vim with the digraph 'i.' . _ı
stands for the same argument as the immediate left ı
does. Any suggestions of another unicode character in the 'Letter, Lowercase' category that
1)no one would use as a variable name, and
2)can be easily input in vim
are welcome. You can also use _0
,_1
,_2
,... to refer to the 1st, 2nd, 3rd, ... arguments.
Just import Syntax.Slot
and use either [s| ... |]
or [slot| ... |]
, which are the same thing given two names for convenience.
README.md
pa_slot
Write lambdas without naming the parameters.
[s| ı : ı : _ı : ı : _ı : _ı : _0 : [] |] 'a' 'b' 'c' = "abbccca"