Hi, Russ,
What does "curried" mean in the context used here?
I think some examples will be worth thousand descriptions:
Ex #1
when I write:
f1: func [a b] [...]
and
f2: curried f1 [b]
it should mean this:
f2: func [a] [func [b] [f1 a b]]
So in words: the result should be a function that takes only part of
arguments of the original f1 and as the result it returns a function where
you can give the rest of arguments and receive the same value as if you
applied the original f1 directly to all arguments.
Ex #2
f1: func [a1 a2 a3 a4 a5] [...]
f2: curried f1 [a2 a4]
it should mean:
f2: func [a2 a4] [func [a1 a3 a5] [f1 a1 a2 a3 a4 a5]]
I think everything is clear now. The problem is, that Rebol *in general*
cannot safely return function as a result of some function (due to the
non-re-entrant nature of it's function calling, and faulty garbage
collector), except for some special cases, so it cannot work flawlessly
before some amount of interpreter debugging.
Ladislav