Refactoring in Tunes
Tue, 11 Jan 2000 18:17:40 +0100
Massimo Dentico wrote:
> firstname.lastname@example.org 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
> 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"
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).