Re: [stack] FL versus Joy

John Nowak <[email protected]>
Newsgroups gmane.comp.lang.concatenative
Message-ID <[email protected]>
And just to really waste everyone's time...

Here's the same reduction in my proposed FL variant. Here, all terms  
denote functions, parentheses are quotation, square brackets are  
construction, and juxtaposition is composition.

   PRIMITIVES:
   i [(F), X] = F X
   hd [A, B]  = A

   USER-DEFINED:
   dup    = [id, id]
   square = mul dup
   double = add dup
   twice  = i [hd, i]

   EVALUATE:
   double twice [(square), id] 5
   double twice [(square) 5, id 5]
   double twice [(square), id 5]
   double twice [(square), 5]
   double i [hd, i] [(square), 5]
   double i [hd [(square), 5], i [(square), 5]]
   double i [(square), square 5]
   double i [(square), mul dup 5]
   double i [(square), mul [id, id] 5]
   double i [(square), mul [id 5, id 5]]
   double i [(square), mul [5, id 5]]
   double i [(square), mul [5, 5]]
   double i [(square), 25]
   double (square) 25
   double mul dup 25
   double mul [id, id] 25
   double mul [id 25 , id 25]
   double mul [25 , id 25]
   double mul [25 , 25]
   double 625
   add dup 625
   add [id, id] 625
   add [id 625, id 625]
   add [625, id 625]
   add [625, 625]
   1250

Very straightforward, if a little long because I was very explicit.  
Here's the same thing removing some of the trivial steps involving  
construction:

   double twice [(square), id] 5
   double twice [(square), 5]
   double i [hd, i] [(square), 5]
   double i [(square), i [(square), 5]]
   double i [(square), square 5]
   double i [(square), mul dup 5]
   double i [(square), mul [id, id] 5]
   double i [(square), mul [5, 5]]
   double i [(square), 25]
   double square 25
   double mul [id, id] 25
   double mul [25, 25]
   double 625
   add dup 625
   add [id, id] 625
   add [625, 625]
   1250

Definitely a lot nicer than FL I think. One thing you'd want is a  
syntax for '[(F), id]', probably ':(F)' or something along those  
lines. 'twice:(square)' is better than 'twice [(square), id]'. Of  
course, other options exist.

- John
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.