There seems to be some hidden rules for forms, particularly as concerns the (dreaded) Y operator that is perplexing to me.
For example, this does not work:
{
:factorial \x f [x 2 < \[1] \[ x x -- f *] if] Y ; from Y help
} = foo
I have managed to figure out independently that all functions in forms want a final argument (usually put as ‘o’, object?), but this also doesn’t work:
{
:factorial \x f o[x 2 < \[1] \[ x x -- f *] if] Y
} = foo
So, what’s the deal here?
Also:
How do you refer to a value in a form when assigning a value to another key in general.
For example:
{
:x 42
:y \o[o.x]
} = foo
foo.y is 42
{
:x 42
:y o.x
} = foo
gives:
“o” is an undefined word, when compiling.
Anybody have any ideas?
Thank You For Your Attention