For instance, from the bottom of page 14 (3rd edition):
(define square (lambda (n) (* n n)))
becomes:
(def square(n) (* n n))
Which is one less keyword and one fewer pairs of braces. Excellent!
(define (square x) (* x x))
-----
arc> (def reciprocal(n) (if (is n 0) "oops!" (/ 1 n)) )
which again reduces the number of keywords and pairs of braces by one, because there is no longer a need to state that what follows def is a lambda.
That makes sense. What else would it be?
arc> (let ((x 2)) (+ x 3)) Error: "Can't understand fn arg list 2"
But: arc> (let x 1 (+ x (* x 2))) results in 3
So:
arc> (let x 2 (+ x 3)) results in 5
which in regular scheme would return () . This is has the effect of reducing the number of parentheses, which is a good thing.
On another thread I asked why this does not return nil. Someone responded that () and nil are two ways of saying the same thing.
(asv 9090)