. . .
> What struck me was this bit of code:
> 
> assemblyLine w = (return w) >>= makeChopsticks >>= polishChopsticks >>= 
> wrapChopsticks
> 
> 
> Interestingly, this looks like Forth (!), where you put a value on the 
> stack, and successive operations fiddle with the stack as a series of 
> transformations. Not that I know Forth, you understand. Hmm, so Haskell 
> can be a concatenative language if you want it to be.

Some time ago I had occasion to model a special-purpose machine in SML,
and the potential users wanted a programmatic interface that looked like
an assembly language for the machine.  I modeled the instructions as
curried functions with the machine state as the last parameter and
return value, and defined a "reverse compose" function -- (f >> g) x ===
g (f x).  This allowed me to write programs with op codes and parameters
running down the page, just like real assembler (I tabbed over to place
the ">>" so they kinda hung out in the comment area so as not to spoil
the illusion).  It was a quick 'n dirty hack that turned out to be
pretty slick.

 -- Bill Wood
    [EMAIL PROTECTED]




_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to