lambda ..

Francois-Rene Rideau fare@tunes.org
Mon, 26 Oct 1998 13:22:01 +0100


>>: Fare 19981021
>: Tril 19981025

> how do I define new kinds of expressions that are not
> lambdas, and new constructors that will create them?
You need reflection for that! That's not builtin the lambda-calc.
I already answered this!

>>> If you can abstract ANY property, as you said in the web pages, Fare, why
>>> must every property conform to a low-level "Search and replace" paradigm
>>> of lambda?
>> We should certainly be able to express other properties than lambdas.
>> It's just that lambda (or rather, lambda-eval-quote) constitutes
>> a minimal reflective logic with well-defined operational semantics
>> (i.e. implementable), out of which we may build the rest.
> 
> What is minimal?  The language is minimal, so it requires its programs to
> be very long?  Why don't we use Turing machines then?  I thought "many
> ways to do the same thing" was important.

Now, *here* is a good question!
First, let's remark that the Turing-equivalence is one based
precisely on metaprogramming: language are equivalent when an "interpreter"
for one can be written in the other. If the programming style prevents
metaprogramming, then it cancels the equivalence.
A "good" T-equiv language is thus one that is both easy to implement
in any other language, and one that allows easy incremental implementation
of arbitrary other languages.
Pure lambda-calculus and its derivatives sure fulfill both these conditions.
It is fairly easy to implement in any language, and
the builtin notion of function application allows to have first-class
evaluators as just functions operating on first-class representations;
those first-class functions can be incrementally built from others;
something just impossible in C and other assembly languages.

Of course, this isn't a very formal proof; if anyone knows
a formal presentation that would help confirm or infirm these statements,
please talk.

.....

The TUNES list is very active these times; but not very constructive.
Surely I should rather spend my copious free time coding or finishing
my articles, rather than giving ever redundant answers on the list. :-~


## Faré | VN: Уng-Vû Bân   | Join the TUNES project!  http://www.tunes.org/ ##
## FR: François-René Rideau |    TUNES is a Useful, Not Expedient System     ##
## Reflection&Cybernethics  | Project for a Free Reflective Computing System ##
A successful [software] tool is one that was used to do something
undreamed of by its author.
                -- S. C. Johnson