Dear Julian,

On Apr 9, 2012, at 19:40 , Julian Leviston wrote:

> Also, simply, what are the "semantic inadequacies" of LISP that the "Maru 
> paper" refers to (http://piumarta.com/freeco11/freeco11-piumarta-oecm.pdf)? I 
> read the footnoted article (The Influence of the Designer on the Design—J. 
> McCarthy and Lisp), but it didn't elucidate things very much for me.

Here is a list that remains commented in my TeX file but which was never 
expanded with justifications and inserted into the final version.  (The ACM 
insisted that a paper published online, for download only, be strictly limited 
to five pages -- go figure!)

%%   Difficulties and omissions arise
%%   involving function-valued arguments, application of function-valued
%%   non-atomic expressions, inconsistent evaluation rules for arguments,
%%   shadowing of local by global bindings, the disjoint value spaces for
%%   functions and symbolic expressions, etc.

IIRC these all remain in the evaluator published in the first part of the 
LISP-1.5 Manual.

> I have to say that all of these papers and works are making me feel like a 3 
> year old making his first steps into understanding about the world. I guess I 
> must be learning, because this is the feeling I've always had when I've been 
> growing, yet I don't feel like I have any semblance of a grasp on any part of 
> it, really... which bothers me a lot.

My suggestion would be to forget everything that has been confusing you and 
begin again with the LISP-1.5 Manual (and maybe "Recursive Functions of 
Symbolic Expressions and Their Computation by Machine").  Then pick your 
favourite superfast-prototyping programming language and build McCarthy's 
evaluator in it.  (This step is not optional if you want to understand 
properly.)  Then throw some expressions containing higher-order functions and 
free variables at it, figure out why it behaves oddly, and fix it without 
adding any conceptual complexity.

A weekend or two should be enough for all of this.  At the end of it you will 
understand profoundly why most of the things that bothered you were bothering 
you, and you will never be bothered by them again.  Anything that remains 
bothersome might be caused by trying to think of Common Lisp as a 
dynamically-evaluated language, rather than a compiled one.

(FWIW: Subsequently fixing every significant asymmetry, semantic irregularity 
and immutable special case that you can find in your evaluator should lead you 
to something not entirely unlike the tiny evaluator at the heart of the 
original Maru.)

Regards,
Ian

_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to