szergling <senatorZergling@gmail.com> wrote:
| For an interesting talk by Gerald Sussman on the ambiguity of
| 'standard mathematical notation', there is an amusing video from
| Danfest2004 (http://www.cs.indiana.edu/dfried_celebration.html)
| about calculus and mechanics, among other things. It was here
| that I realised that Scheme has implicit currying when defining
| functions -- (define ((sum x) y) ...)
Except that it doesn't, at least not any of the "standardized"
versions up through R6RS. In R6RS (and earlier), DEFINE has only
two forms, a "primitive" form:
(DEFINE var value) ; though VALUE may be a LAMBDA expr.
and a "convenience" form defined in terms of the first [where
"FORMALS..." can be an improper list, the last symbol being a &REST
arg in the CL sense]:
(DEFINE (func formals...) body)
==> (DEFINE func (LAMBDA (formals...) body))
I suspect Sussman may have been using his own personal
experimental/extended version of Scheme in that talk.
 Well, plus one more variant of the "convenience" form
in the case of a single &REST arg:
(DEFINE (func . arg) body) ==> (DEFINE func (LAMBDA arg body))
Rob Warnock <email@example.com>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607