[REBOL] Re: tail-func: for the gurus
From: lmecir:mbox:vol:cz at: 19-Nov-2001 12:51
Hi
> 1) your implementation uses "keywords": [ref-mode p1 p2 r w comm statement
> ret either get bind to-word append mold on off refinement! word! copy
parse
> _*loops _*myspec insert to-path _*mycall if _*loop-detected true return
> until false set do not]. The need to have keywords can be eliminated.
>
<<Maarten:>>
I agree. But the idea is to have some kind of stack frame. I found it handy
to use keywords there. Along the same road a class hierarchy can be
implemented.
<</Maarten>>
I am not sure we understood each other. What I wanted to tell was, that your
implementation wouldn't correctly handle functions with arguments/locals
from the "Keywords" block. (Actually, it looks to me, that another "keyword"
I didn't mention was 'local, which might really mean a serious limitation).
> 2) Why did you use the CATCH function attribute?
<<Maarten:>>
A local code convention in our project.
<</Maarten>>
That might not be as useful as it may look at a first glance. I suggest you
to look at http://www.rebol.cz/cffr.html . See the reasons why I wrote
TRANSP-FUNC, especially WRT the CATCH attribute.
> 3) Refinements can be passed more transparently.
<<Maarten:>>
I see. But... I use this technique also in Rugby, where this is the only way
because you are in a distributed environment. Stolen from myself ;-)
<</Maarten>>
It might be interesting to compare the speed of these two, although there
are other possible alternatives ...
> 4) Other simplifications/generalizations were possible. I have "stolen"
> some ideas from my
<<Maarten:>>
Cool! I hope others are reading this thread because it is very insightful to
(have) demonstrate(d) the true power of Rebol: if it isn't there, you can
built it in no time. Rebol really transforms into what *you* want it to be.
Human-centered software engineering for the programmers....
--Maarten
<</Maarten>>
Well said.