Peter Bex scripsit:

> If I understand correctly, that means that this program should
> not fail, but simply print "1":
> 
> (define (else) 1)
> (display (else))
> (newline)

That's true of all the 44 Schemes in my test suite, except a few that
don't allow you to redefine names imported from a module even at the REPL.

But there really shouldn't be any difference between defining an
undefined identifier as a variable and redefining an existing ordinary
(non-auxiliary) syntax keyword as a variable, either.  Unfortunately,
this is only true of some Schemes.  In particular, redefining a regular
(non-auxiliary) syntax keyword as a procedure doesn't work in Chicken,
Bigloo, STklos, Shoe, TinyScheme, Scheme 9, S7, XLisp, Rep, Picrin,
and signals a define-time error in Gambit, SXM, Scheme48, Ypsilon, KSi.
In my other Schemes, it succeeds, possibly with a warning.

-- 
John Cowan          http://www.ccil.org/~cowan        co...@ccil.org
The Imperials are decadent, 300 pound free-range chickens (except they have
teeth, arms instead of wings, and dinosaurlike tails).  --Elyse Grasso

_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports

Reply via email to