But picolisp curry function doesn't do that, it simply returns a lambda
with 1 parameter having the other one properly substituted with its value
thus making impossible to partially apply the returned function


I still think 'curry' is what you want.


Note that 'curry' works with an arbitrary number of parameters, e.g.

   (curry (@X @Y @Z) ... )

As far as partial application, wasn't 'adder' an example of that?

   : (adder 3)
   -> ((X) (+ X 3))  # partial application
   : ((adder 3) 7)   # used as function call
   -> 10

I'm not sure that a structure such as

   ((X) '((Y) (+ X Y)))

would be very useful in PL, though it could certainly be built with our
friends 'fill' or 'macro'. But I'm also not sure I understood your question
entirely.

What that helpful at all?

Reply via email to