Re: [stack] Re: Barebone implementation of concatenative language in c or c++

Don Groves <[email protected]> Sat, 24 Jul 2010 14:01:55 -0700
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
On 24 Jul 2010, at 04:04, pml060912 wrote:

> --- In [email protected], Don Groves <dgroves@...> wrote:
>>
>> On 23 Jul 2010, at 02:56, pml060912 wrote:
>>
>>> --- In [email protected], Don Groves <dgroves@> wrote:
> .
> .
> .
>>>> Thanks. Do you feel your approach is equivalent to lazy evaluation?
>>>
>>> We had that discussion earlier, I think actually on this thread. I
>>> feel it works out like this:-
>>>
>>> - From the program's point of view, it is equivalent to lazy
>>> evaluation, because the behaviour it delivers is the same.
>>>
>>> - From the programmer's point of view, it is not, because he or she
>>> has to do something explicit to achieve it. Before the syntactic
>>> sugar, quite a bit is needed to get things like recursion and loops,
>>> but even though that cuts it down it still doesn't eliminate it.
>>>
>>> Taking all in all, I decided to document it as "change the behaviour
>>> to lazy evaluation", not to call it lazy evaluation as such.
>>> P.M.Lawrence.
>>>
>>
>> But if that behavior is built into the language, why does an
>> application programmer have to do anything explicit?
>
> It's not built into the language, in that sense, any more than the  
> fact that a gear lever and clutch pedal in a car make it have an  
> automatic transmission. Rather, there are keywords the programmer  
> can use to get the indirection that gives lazy behaviour to the code  
> built with them even though those indirection keywords work eagerly  
> - just as the car can change gears, but only when the driver works  
> the controls for that. It's not enough to code branches with IF  
> (say), the programmer also needs to put FREEZE into keywords for  
> each branch (or use the [ ] pair in inline code) and then use THAW  
> to make use of whatever was frozen (maybe with some of that hidden  
> in yet other keywords). IF by itself only delivers eager behaviour.  
> The programmer has to make explicit use of the indirection to  
> achieve lazy behaviour, since the default is eager. P.M.Lawrence.

Now I've got it, thanks.

don

>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>