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,379 of 117,927   
   Ruvim to albert@spenarnc.xs4all.nl   
   Re: Nested definitions   
   02 Jul 25 16:18:41   
   
   From: ruvim.pinka@gmail.com   
      
   On 2025-07-02 15:37, albert@spenarnc.xs4all.nl wrote:   
   > In article <1042s2o$3d58h$1@dont-email.me>,   
   > Ruvim   wrote:   
   >> On 2025-06-24 01:03, minforth wrote:   
   >> [...]   
   >>   
   >>> For me, the small syntax extension is a convenience when working   
   >>> with longer definitions. A bit contrived (:= synonym for TO):   
   >>>   
   >>> : SOME-APP { a f: b c | temp == n: flag z: freq }   
   >>> \ inputs: integer a, floats b c   
   >>> \ uninitialized: float temp   
   >>> \ outputs: integer flag, complex freq   
   >>>    <: FUNC < ... calc function ... > ;>   
   >>   
   >> BTW, why do you prefer the special syntax `<: ... ;>`   
   >> over an extension to the existing words `:` and `;`   
   >>   
   >>    : SOME-APP   
   >>       [ : FUNC < ... calc function ... > ; ]   
   >>       < ... >   
   >>    ;   
   >>   
   >> In this approach the word `:` knows that it's a nested definition and   
   >> behaves accordingly.   
   >   
   > Or it has not even know it, if [ is smart enough to compile a jump to   
   > after ].   
      
   This can be tricky because the following should work:   
      
      create foo [ 123 , ] [ 456 ,   
      
      : bar  [ ' foo compile, 123 lit, ] ;   
      
      
      
   --   
   Ruvim   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

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


(c) 1994,  bbs@darkrealms.ca