Personally I prefer to specify which operation to use by (optional)
type declarations, rather than explicitly specying the operation.
That is more like what other languages do, including Common Lisp.
Specifying parameter, returns, and global variable types is better
for documentation, better for error-checking, and is easier for
compilers to generate better code. Also, it makes the code more
readable. It's a choice bwteeen:
(define (square-sum (x :: <flonum>) (y :: <flonum>))
(+ (* x x) (* y y)))
or:
(define (square-sum x y)
(fl+ (fl* x x) (fl* y)))
If you have type specifiers, you don't need the separate operation
names. And type specifiers are much to be preferred. After all
if Scheme is a teaching language, we want to encourage our students
to use type declarations, I think.
--
--Per Bothner
xxxxxx@bothner.com http://per.bothner.com/