[CM] About the implementation of sturms function in Notes from the Metalevel

Christophe Rhodes csr21@cam.ac.uk
Fri, 28 Oct 2005 22:52:10 +0100


"Bill Schottstaedt" <bil@ccrma.Stanford.EDU> writes:

> sbcl is picky about the step variable -- I complained about
> it a long time ago, and was told that it was a feature.  Here's an even better sbcl-ism:
>
> The value 0.0
>              is not of type
>                (OR (SINGLE-FLOAT (0.0)) (DOUBLE-FLOAT (0.0d0)) (RATIONAL (0)))
>
> which happens in cmn! 

The step variable is defined to be a positive real, in the ANSI
standard, section 6.1.2.1.1:

  by

    The loop keyword by marks the increment or decrement supplied by
    form3. The value of form3 can be any positive number. The default
    value is 1.

Neither 0.0 nor -1 is a positive number.  The type
  (or (single-float (0.0)) (double-float (0.0d0)) (rational (0)))
precisely means "positive number".  I'm sorry that you don't find this
helpful.

Cheers,

Christophe