[CM] problem while executing loop.cm from .. Metalevel

Ralf Mattes rm@seid-online.de
Sun, 27 May 2007 21:21:50 +0200


On Sun, 2007-05-27 at 14:08 -0500, Fitzpatrick, Denis F wrote:
> When I evaluate the following (from loop.cm in Notes from the Metalevel)
> 
> (loop for i below 4
>       for j from 100 by -10
>       for k = (random 100)
>       collect (list i j k))

This is invalid Common Lisp - some Lisps _do_ tollerate it but SBCL
(which you seem to use doesn't). 

> I get the following error message and backtrace:
> (apparently doesn't like the negative)

No - and with reason ;-) A little bit of Google should bring you to a
c.l.l thread ...

You can fix your code by using 'downfrom 100 by 10'.

 HTH Ralf Mattes
  
> 
> The value -10
> is not of type
>   (OR (SINGLE-FLOAT (0.0)) (DOUBLE-FLOAT (0.0d0)) (RATIONAL (0))).
>    [Condition of type TYPE-ERROR]
> 
> Restarts:
>   0: [ABORT-REQUEST] Abort handling SLIME request.
>   1: [ABORT] Exit debugger, returning to top level.



> Backtrace:
>   0: (SB-C::%COMPILE-TIME-TYPE-ERROR (-10) (OR (SINGLE-FLOAT (0.0))
> (DOUBLE-FLOAT (0.0d0)) (RATIONAL (0))) #<unavailable argument>)
>   1: (NIL)
>   2: (SB-INT:SIMPLE-EVAL-IN-LEXENV (LOOP FOR I BELOW 4 FOR J FROM 100 BY ...)
> #<NULL-LEXENV>)
>   3: ((LAMBDA ()))
>   4: ((LAMBDA (SWANK-BACKEND::FN)) #<CLOSURE (LAMBDA #) {12BBAC35}>)
>   5: (SWANK::CALL-WITH-BUFFER-SYNTAX #<CLOSURE (LAMBDA #) {12BBAC35}>)
>   6: (SB-INT:SIMPLE-EVAL-IN-LEXENV
>       (SWANK:INTERACTIVE-EVAL "(loop for i below 4
>            for j from 100 by -10
>            for k = (random 100)
>            collect (list i j k))
>      ")
>       #<NULL-LEXENV>)
>   7: ((LAMBDA ()))
>   8: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION
> SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA #) {12BBAAD5}>)
>   9: ((LAMBDA ()))
>  10: ((LAMBDA (SWANK-BACKEND::HOOK SWANK-BACKEND::FUN)) #<FUNCTION
> SWANK:SWANK-DEBUGGER-HOOK> #<FUNCTION (LAMBDA #) {117BAA5D}>)
>  11: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {124C0289}>
> #<CLOSURE (LAMBDA #) {12BB7A1D}>)
>  12: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {124C0289}> #<FUNCTION
> (LAMBDA #) {117BAA5D}>)
>  13: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {124C0289}>)
>  14: (SWANK::PROCESS-AVAILABLE-INPUT #<SB-SYS:FD-STREAM for "a constant
> string" {124BF2F9}> #<CLOSURE (LAMBDA #) {12BB7A05}>)
>  15: ((FLET SWANK::HANDLER))
>  16: ((LAMBDA (SWANK-BACKEND::_)) #<unused argument>)
>  17: (SB-IMPL::SUB-SERVE-EVENT NIL 0)
>  18: (SB-SYS:WAIT-UNTIL-FD-USABLE 0 :INPUT NIL)
>  19: (SB-IMPL::REFILL-BUFFER/FD #<SB-SYS:FD-STREAM for "standard input"
> {115D8709}>)
>  20: (SB-IMPL::INPUT-CHAR/UTF-8 #<SB-SYS:FD-STREAM for "standard input"
> {115D8709}> NIL #:EOF-OBJECT)
>  21: (READ-CHAR #<SB-SYS:FD-STREAM for "standard input" {115D8709}> NIL
> #:EOF-OBJECT #<unused argument>)
>  22: (READ-CHAR #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {100CADA1}> NIL
> #:EOF-OBJECT #<unused argument>)
>  23: (READ-PRESERVING-WHITESPACE #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN*
> {100CADA1}> NIL (NIL) T)
>  24: (READ-PRESERVING-WHITESPACE #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN*
> {100CADA1}> NIL (NIL) NIL)
>  25: (READ #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {100CADA1}> NIL (NIL) NIL)
>  26: (SB-IMPL::REPL-READ-FORM-FUN #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN*
> {100CADA1}> #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDOUT* {10123229}>)
>  27: (SB-IMPL::REPL-FUN NIL)
>  28: ((LAMBDA ()))
>  29: ((LAMBDA ()))
>  30: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<CLOSURE (LAMBDA #) {116CFC65}>)
>  31: (SB-IMPL::TOPLEVEL-REPL NIL)
>  32: (SB-IMPL::TOPLEVEL-INIT)
>  33: ((LABELS SB-IMPL::RESTART-LISP))
> 
> _______________________________________________
> Cmdist mailing list
> Cmdist@ccrma.stanford.edu
> http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist