Ciao,

[...deleted...]

> >  However, functions aren't
> > first-class objects if you can't return them
> > as values.
>
> They are, and you can. Trust me. :-)

[L]
Problem is, that you can easily return non-functions (i.e. functions without
known value - which aren't functions according to the textbook definition,
but Rebol doesn't know...) and have no means to find out you have done so,
until some unexpected crash occurs (like non-re-entrant method calling,
remember?). This kind of bug can survive even a very thorough testing,
because it could need some special conditions to show itself. All would be
better if the function context would have been dynamic, or re-entrant, if
you prefer. Then the non-functions were more unlikely. Moreover, if you
would like to create multithreaded programs or other interesting things, the
functions MUST NOT have static context.

And it's not useful - see how hard was to find a formulation of CURRY, that
really worked, although with dynamic function context with correct GC it
would be a piece of cake, because the first formulation would work...
[/L]

>
> > Every version of REBOL has either made subtle or drastic changes in
> > how variables are scoped.
>
> That's false. It never changed, if not from 1.0 to 2.0 (EVERYTHING
> changed...).

[L]
VERY CURIOUS statement for a newcomer to see
[/L]

>
> > If there are `correct' rules for function application, variable
> > scoping, and objects, why is REBOL Tech. so adamant about keeping
> > them secret?
>
> They do not have the time. Do realize that they're not a big
> company.
>
> > Is the GC buggy when it collects contexts or do contexts have a
> > limitied lifetime?
>
> There's a bug. Contexts have undefinite extent.

[L]
even that was not made clear in the 2.0 doc's, I think

Ladislav



Reply via email to