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 116,459 of 117,927   
   NN to Krishna Myneni   
   Re: convenient stack operation: a b c --   
   04 May 24 16:14:08   
   
   From: november.nihal@gmail.com   
      
   On 30/11/2023 6:55 pm, Krishna Myneni wrote:   
   > I'm in need of a convenient way to do the following for the fp stack,   
   > but we can pose the problem for the data stack:   
   >   
   >     a b c -- b a c   
   >   
   > Two ways to do this on the data stack are   
   >   
   >    ROT SWAP   
   >   
   >    >R SWAP R>   
   >   
   > ( the latter can't be done from the interpreter, portably at least ).   
   >   
   > Is there a word I'm not remembering to perform this operation? If not   
   > what name would one give to this stack operation?   
   >   
   > SWAP-UNDER   
   > ROTSWAP   
   > RISE   
   >   
   > For fp stack manipulation, I had posted mostly portable code for F>R and   
   > FR> to push and pop from the floating point stack to/from the return   
   > stack. A significant reason for suggesting the F>R FR> pair is to deal   
   > with this situation where having to use FROT FSWAP would be inefficient   
   > on non-analytic compilers.   
   >   
   > Maybe a generic swap operation at depth u, called RISE, is useful e.g.   
   >   
   >   
   > 0 RISE   \ same as SWAP   
   > 1 RISE   \ i*x a b c -- i*x b a c   
   > 2 RISE   \ i*x a b c d -- i*x b a c d   
   > etc.   
   >   
   >   
   > Comments?   
   >   
   > --   
   > Krishna Myneni   
   >   
      
      
   Since no one suggested it, in factor they have called it swapd ( x y z   
   -- y x z )   
      
   https://docs.factorcode.org/content/word-swapd%2Ckernel.html   
      
   Using the same convention you could call it fswapd for operating on the   
   floating stack.   
      
   --- 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