From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp6-g21.free.fr (smtp6-g21.free.fr [212.27.42.6]) by sourceware.org (Postfix) with ESMTPS id 5B7573858402 for ; Tue, 14 Sep 2021 16:14:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5B7573858402 Received: from smtpclient.apple (unknown [78.196.108.109]) (Authenticated sender: phiroc@free.fr) by smtp6-g21.free.fr (Postfix) with ESMTPSA id 54A78780393; Tue, 14 Sep 2021 18:14:22 +0200 (CEST) From: Philippe de Rochambeau Message-Id: Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.80.0.2.43\)) Subject: Re: define-syntax can only be used with local variables Date: Tue, 14 Sep 2021 18:14:22 +0200 In-Reply-To: Cc: kawa@sourceware.org, Jean-Paul Roy To: Damien Mattei References: <971550055.197381511.1631259004148.JavaMail.root@zimbra65-e11.priv.proxad.net> <1301054857.197399065.1631259238004.JavaMail.root@zimbra65-e11.priv.proxad.net> X-Mailer: Apple Mail (2.3654.80.0.2.43) X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: kawa@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Kawa mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Sep 2021 16:14:31 -0000 I get (1) : (define-syntax nil2! (syntax-rules () ((_ x) (set! x '(0))))) #|kawa:1|# (load "define2.scm") #|kawa:2|# (define y '(1)) #|kawa:3|# y (1) #|kawa:4|# (nil2! y) #|kawa:5|# y (1) #|kawa:6|#=20 I am using Kawa 3.1.1 on Macosx. Philippe > Le 14 sept. 2021 =C3=A0 14:42, Damien Mattei = a =C3=A9crit : >=20 > i have test one of your example and it works fine on my system: > mattei@moita ~]$ kawa > #|kawa:1|# (define-syntax nil2! > (syntax-rules () > ((_ x) > (set! x '(0))))) > #|(---:2|# #|(---:3|# #|(---:4|# #|kawa:5|#=20 > #|kawa:6|# (define y '(1)) > (nil2! y) > (display y) (newline)#|kawa:7|# #|kawa:8|#=20 > (0) > #|kawa:9|# y > (0) >=20 > Damien >=20 > On Fri, Sep 10, 2021 at 9:34 AM phiroc--- via Kawa = > wrote: > Hello, > in the below code, nil! and nil2! only set variables values to '() and = '(0) when such variables are local (let). > When I run the code with LispKit Go Scheme, global variables (such as = y below) are also set. > What gives? > Many thanks. > Philippe >=20 >=20 >=20 > ;; > ;; ..\bin\kawa -C .\javafx0.scm > ;; java -cp "..\lib\kawa.jar;." javafx0 >=20 > (let ((x '(1 2 3)))=20 > (define-syntax nil! > (syntax-rules () > ((_ x) > (set! x '())))) > (nil! x) (newline) (display x) (newline)) >=20 > (define-syntax nil2! > (syntax-rules () > ((_ x) > (set! x '(0))))) >=20 > (let ((x2 '(4 5 6))) > (nil2! x2) > (display x2) (newline)) >=20 > (define y '(1)) > (nil2! y) > (display y) (newline) >=20 > (define (f-nil! x) > (set! x '())) >=20 > (define z 4) > (f-nil! z) > (display z)