Ray Dillinger <email@example.com> wrote:
| 'assert' is one of the most useful of the expressions I use.
| (+ (assert flonum x) (assert flonum y))
| has exactly the same semantics as
| (+ x y)
| but the compiler in the first case is not generating code
| to handle situations like x being a complex number.
Sounds like you need to read up on the Common Lisp operator "the".
In CL your example reads exactly the same (modulo "assert" vs "the"):
(+ (the flonum x) (the flonum y))
and whether you blindly ignore a broken type assertion or trap on it
is controlled by the "safety" declaration.
Rob Warnock, 7L-551 firstname.lastname@example.org http://reality.sgi.com/rpw3/
Silicon Graphics, Inc. Phone: 650-933-1673
2011 N. Shoreline Blvd. FAX: 650-933-4392
Mountain View, CA 94043 PP-ASEL-IA