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 cowan@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