As mentioned previously, See Functions, Lpp first class function objects can be generated and manipulated as data and also applied to other data.
|funcall fun args||Function|
This function calls the Lpp function object fun on the
args which can be 0 or more arguments of type
value of type
let that fun returns is returned from the
|apply fun args||Function|
This function is similar to
funcall except that the arguments
given to fun is taken from only one argument args which
is a list of 0 or more Lpp objects.
Here are some examples that contrast
let list1 = list(L("Lost"), L("World")); let fun = L(listConcat); funcall(fun, cadr(list1), car(list1)) => WorldLost apply(fun, list1) => LostWorld