Refactoring in Tunes

Massimo Dentico m.dentico@teseo.it
Tue, 11 Jan 2000 18:17:40 +0100


Massimo Dentico wrote:
> 
> btanksley@hifn.com wrote:
> [...]
> > the better.  I posted a link to the 'Joy' page a bit earlier; take a look
> > for a study of computation theory completely without lambda calculus.
> 
> A quote from "Overview of the language JOY"
> - http://www.latrobe.edu.au/www/philosophy/phimvt/j00ovr.html
> 
> ==================================================================
> One of these is a combinator  for mapping elements of one list via
> a function to another list. Consider the program:
> 
>         [1 2 3 4]  [dup *]  map
>                    ^^^^^^^
> ==================================================================
> 
> Bill,  this is  a lambda (anonymous function)!  Joy remember me  a
> little language,  False  (from the same  inventor  of the  Amiga E
> language, Wouter van Oortmerssen).
> 
> False is a stack-based language with lambda (same notation, square
> brackets).
> 
> False home page:
> - http://www.ecs.soton.ac.uk/~wvo96r/false/index.html
> 
> Wouter van Oortmerssen  home page  (hacked  by  the japanese  ABBA
> fanclub :-)
> - http://www.ecs.soton.ac.uk/~wvo96r/
> 
> --
> Massimo Dentico

The abstract of "An informal tutorial on Joy"
- http://www.latrobe.edu.au/www/philosophy/phimvt/j01tut.html

==================================================================
Abstract:   Joy is a functional programming language  which is not
based  on the  application  of  functions to arguments  but on the
composition  of functions.  It does not use  lambda-abstraction of
expressions  but instead it uses quotation of expressions. A large
number of combinators  are used to perform dequotation,  they have
the effect of higher order functions.  Several of them can be used
to eliminate  recursive definitions.  Programs in Joy  are compact
and often  look just like postfix notation.   Writing programs and
reasoning about them is made easy because there is no substitution
of actual  for formal parameters.  This tutorial gives a pragmatic
introduction without reference to the theory of Joy.
==================================================================

So, you are right Bill.  I have used the *informal* limited notion
of lambda as anonymous function,  but technically speaking this is
a partial point of view.  However, further simplification compared
to lambda  calculus  are truly interesting.  The idea  of a system
based on combinators (or Forth),  as a bootstrapping system, float
around the Tunes project from the long time (see LLL subproject).
 
-- 
Massimo Dentico