From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-il1-x132.google.com (mail-il1-x132.google.com [IPv6:2607:f8b0:4864:20::132]) by sourceware.org (Postfix) with ESMTPS id 019473858402 for ; Tue, 14 Sep 2021 12:42:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 019473858402 Received: by mail-il1-x132.google.com with SMTP id b8so12075430ilh.12 for ; Tue, 14 Sep 2021 05:42:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=00Swhz69q/x8HUIHlSX5V4SlfU5fvnoPBcqPfNsu4nY=; b=6oAuWdLIWKioL7/P/fKN/AsmGquZUVoNm3R6RhyV8qafDsSQX2CzzAcSeZH0kWGtem 0qoKi2SZKorChGAUUGYBV2zzSFUpJm4MtnHifzYVJ45KcXl6bXP614ANGt9JDf3ISp/2 N3lKvQc9cM6/Q9QpHhhE0azBP5wyAJvaezwpumLTue42sZi5vPNKnbC91jgPwwRC3Py8 hgSN+9j+OQJn505yAga25yBW8+dSPqQ2FrdEMXzpldYWFnevHmuaZY08C5lDiUFqdysi Qor8p/ce9IY95B7Ri28oJ6S2OzmAeHH1zTtl8CJlOaCWjDLhnRg0c9Xb/yb/9afyggIR Kv7A== X-Gm-Message-State: AOAM530lIgpAlDel8S7Kyd1f3+9yKGsttrJzKxkOJZzAMszvnRlfxT5L 3H8QHvsF7tnYHZs4zp4MeOBHTxpzp8k/50j5kiE= X-Google-Smtp-Source: ABdhPJwse4CNAzu9lYtJKysjDfthl23Ye4AeY7wz4YRXesSWVXhLJ5pRHBcddoCzj0V0O8pz3JVF/VtYEu/htGnoU8s= X-Received: by 2002:a05:6e02:1b89:: with SMTP id h9mr3256737ili.297.1631623344394; Tue, 14 Sep 2021 05:42:24 -0700 (PDT) MIME-Version: 1.0 References: <971550055.197381511.1631259004148.JavaMail.root@zimbra65-e11.priv.proxad.net> <1301054857.197399065.1631259238004.JavaMail.root@zimbra65-e11.priv.proxad.net> In-Reply-To: <1301054857.197399065.1631259238004.JavaMail.root@zimbra65-e11.priv.proxad.net> From: Damien Mattei Date: Tue, 14 Sep 2021 14:42:13 +0200 Message-ID: Subject: Re: define-syntax can only be used with local variables To: phiroc@free.fr Cc: kawa@sourceware.org, Jean-Paul Roy X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, 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" 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 12:42:26 -0000 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|# #|kawa:6|# (define y '(1)) (nil2! y) (display y) (newline)#|kawa:7|# #|kawa:8|# (0) #|kawa:9|# y (0) Damien 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 > > > > ;; > ;; ..\bin\kawa -C .\javafx0.scm > ;; java -cp "..\lib\kawa.jar;." javafx0 > > (let ((x '(1 2 3))) > (define-syntax nil! > (syntax-rules () > ((_ x) > (set! x '())))) > (nil! x) (newline) (display x) (newline)) > > (define-syntax nil2! > (syntax-rules () > ((_ x) > (set! x '(0))))) > > (let ((x2 '(4 5 6))) > (nil2! x2) > (display x2) (newline)) > > (define y '(1)) > (nil2! y) > (display y) (newline) > > (define (f-nil! x) > (set! x '())) > > (define z 4) > (f-nil! z) > (display z) >