home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.forth      Forth programmers eat a lot of Bratwurst      117,927 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 117,003 of 117,927   
   Hans Bezemer to albert@spenarnc.xs4all.nl   
   Re: "Back & Forth" - Local variables   
   08 Jan 25 18:52:55   
   
   From: the.beez.speaks@gmail.com   
      
   On 08-01-2025 17:27, albert@spenarnc.xs4all.nl wrote:   
      
   > I was impressed with the Behringer solution.   
   > (I didn't care about the politically correct solution.)   
   >   
   > ====================================   
   > : local{ R> SWAP DUP >R @ >R >R ;   
   > : }global R> R> R> ! >R ;   
   > =================   
   >   
   > But I can do you one better.   
   > Remember the word ;: from colorforth. That is actually a coroutine call.   
   > I call it CO. (Present in ciforth since the year 00)   
      
      
      
   >   
   > With CO the example become   
   > ---------------------------------------   
   > : LOCAL   R> SWAP DUP >R @ >R >R   CO   R> R> ! ;   
   >   
   > VARIABLE A   
   > VARIABLE B   
   >   
   > : divide   
   >     A LOCAL   
   >     B LOCAL   
   >     B ! A !  A @ B @ /   
   >     . CR   
   > ;   
   >   
   > 15 3 divide   
   > ---------------------------------------   
   >   
   > This saves a definition and a word-of-code, and a line for every   
   > LOCAL used. Now that is closer to what Chuck Moore would have used.   
   > Remember for Moore CO aka ;: is a standard word.   
   >   
   > CO is not standard but it should be, and it is elementary as hell.   
      
   Couldn't find the source for either CO or ;: but I got some primitive,   
   high level form of co-routine in 4tH:   
      
   ====================================   
   : yield r> r> swap >r >r ;             \ remember that ; compiles EXIT!   
   aka rdrop grab                         \ so add a [FORCE] when needed.   
   ====================================   
      
   Can't say how they measure up. But I guess co-routines is something   
   Chuck would like - since it's something you can implement quite easily.   
   So yes, I agree Chuck wouldn't waste that line ;-)   
      
   Hans Bezemer   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca