|
From: | Jeronimo Pellegrini |
Subject: | Re: cond clause does not allow definitions |
Date: | Wed, 22 May 2024 19:37:02 -0300 |
On 2024-05-22 18:07, Pierpaolo Bernardi wrote:
In chez:(cond (else (define x 7) x))7x7 which looks like a bug to me. You may check if x is defined outside of the cond expression in the other implementations which do not raise an error too?
Sure! And the result varies a lot! (cond (#t (define x 7) x)) (cond (else (define y 7) y)) | System | A | x | B | y | |-------------|-------|-------|-----------|-----------| | Bigloo | 7 | x | 7 | 7 | | Biwa | 7 | 7 | 7 | 7 | | Chez | error | error | 7 | 7 | | Chibi | error | error | 7 | 7 | | Chicken | 7 | 7 | 7 | 7 | | Cyclone | 7 | error | 7 | error | | Gambit | error | error | error | error | | Gauche | 7 | 7 | 7 | 7 | | Guile | 7 | error | 7 | error | | Kawa | 7 | error | 7 | 7 | | LIPS | 7 | error | error (*) | error (*) | | Loko | error | error | error | error | | MIT | error | error | error | error | | Racket | 7 | error | 7 | error | | Sagittarius | 7 | 7 | 7 | 7 | | Scheme48 | error | error | 7 | 7 | | Scheme 9 | error | error | 7 | 7 | | SCM | 7 | 7 | 7 | 7 | | STklos | 7 | 7 | 7 | 7 | | Tinyscheme | 7 | 7 | 7 | 7 |* LIPS does not recognise the `else` clause when it's the only expression in `cond`.
J.
[Prev in Thread] | Current Thread | [Next in Thread] |