[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Backquote history



I think the original ideas come from MDL.  In MDL, lists and forms are
two different data types.  Lists (written with parens) self-evaluate,
and forms (written with angle brackets) evaluate like forms do in Lisp.

(+ 2 3) => (1 2 3)
<+ 2 3> => 5

Then there is a weird mapping convention -- evaluation distributes over
lists.

(+ <+ 2 3> 5) => (+ 5 5)

There is a quote for those rare occasions where you don't want to
evaluate a form yet, but usually the things you would be quoting are
lists so you don't need the quote anyway.

Symbols self-evaluate in MDL -- you have to tell it you want the value
of a variable.

<SETG FOO 100>  =>  100
FOO => FOO
,FOO => 100

So you can imagine:

(4 ,FOO 5) => (4 100 5)

Finally, instead of comma-atsign they have exclamation:

<SETG FOO (1 2 3)> => (1 2 3)
(3 4 !,FOO 5) => (3 4 1 2 3 5)
(3 4 !<REST ,FOO> 5) => (3 4 2 3 5)

This stuff is sort of basic to MDL's evaluation philosophy, and they
have probably had it since their beginning in the early 70's.

Ref.  "The MDL Programming Language", S.W. Galley and Greg Pfister,
1979, MIT Lab for Computer Science.

   --- Allan