CLIP some more!
btanksley@hifn.com
btanksley@hifn.com
Fri, 17 Mar 2000 13:11:38 -0800
From: iepos@tunes.org [mailto:iepos@tunes.org]
>It looks like this discussion (on applicative systems) has
>pretty much settled down...
Yup. I, at least, have finally started to figure it out.
>> >What do you think... ?
>>
>> I know which one I would prefer to work with -- the unified
>> list, all the
>> way. There's just no way I'd want to deal with a whole bunch of
>> variable-stack-effect words.
>Hmm... I'm pretty sure I want the variable-stack-effect words whether
>or not I also have unified lists...
True, but you _don't_ want people to use them. They have a _terrible_
effect on code, and they also hurt optimizers.
>Surely one would like to have
>"dup2", "dip2", "sip2", and such, and probably similar things for "3".
>It would seem inelegant to me to have support for "2" and "3" versions
>without making a general version.
Generally speaking, if you play with more than 3 stack elements, your code
needs a redesign. There are always exceptions, though.
IMO, the best way to make a "general" version of any of those words is to
have the general version operate over the items in a list.
>If I do end up using unified lists (and this is likely), the main
>primitives will just be "wrap" and "unwrap" (in the absense of
>"reverse", "map", "concat", and things)... If one wants to do
>more complex things with lists, then the thing to do is to unwrap
>them first and then use the variable-stack-effect words (and
>then wrap it back up again, if needed) ...
You haven't done much Forth coding, have you? The variable-effect words are
so destructive to understanding that I have seriously never seen any in any
Forth code.
List manipulation, on the other hand, is VERY common (in languages which
support it).
>- "iepos" (Brent Kerby)
-Billy