chicken-janitors
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-janitors] #209: Chicken allows for shadowing syntax in a way di


From: Chicken Trac
Subject: [Chicken-janitors] #209: Chicken allows for shadowing syntax in a way disallowed by R5RS/sec.5.3
Date: Sat, 10 Apr 2010 17:57:38 -0000

#209: Chicken allows for shadowing syntax in a way disallowed by R5RS/sec.5.3
----------------------+-----------------------------------------------------
 Reporter:  jeronimo  |       Owner:       
     Type:  defect    |      Status:  new  
 Priority:  minor     |   Milestone:  4.5.0
Component:  unknown   |     Version:       
 Keywords:            |  
----------------------+-----------------------------------------------------
 Hi,

 With master/HEAD, (latest commit is
 8acb3f92df82f369fc5dbef8f7c44a68468a92c3):

 {{{
 #;7> (define define (lambda () 'z))
 #;8> define
 #<procedure (define)>
 #;9> (define)

 Error: (car) during expansion of (define ...) - bad argument type: ()

     Call history:

     <syntax>        (define)    <--
 #;9> (let ((a define)) (a))
 z
 #;10>
 }}}

 But section 5.3 of R5RS explicitly disallows defining define among other
 things (it mentions "(define define 3)" as an example of error, and
 Chicken allows it).

 This is not listed in the "Deviations form the standard" section of the
 manual, so it's not clear if it's a bug or an intended deviation.


 P.S.: Bigloo does the same;
 Chibi signals an error;
 Guile shadows the define syntax even when it's in procedure-calling
 position: "(define)" above works in Guile and returns the symbol z!

-- 
Ticket URL: <http://www.irp.oist.jp/trac/chicken/ticket/209>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]