From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Damien Mattei Newsgroups: gmane.lisp.guile.devel,gmane.lisp.guile.user Subject: Re: expression and definition context in Scheme Date: Sat, 27 Aug 2022 21:02:16 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000f5406c05e73dab37" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25606"; mail-complaints-to="usenet@ciao.gmane.io" To: guile-user , guile-devel Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sat Aug 27 21:03:25 2022 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oS15Z-0006Qx-3Q for guile-devel@m.gmane-mx.org; Sat, 27 Aug 2022 21:03:25 +0200 Original-Received: from localhost ([::1]:41712 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oS15X-00009c-EJ for guile-devel@m.gmane-mx.org; Sat, 27 Aug 2022 15:03:23 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:39692) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oS14i-00005H-87; Sat, 27 Aug 2022 15:02:37 -0400 Original-Received: from mail-lf1-x132.google.com ([2a00:1450:4864:20::132]:38533) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oS14g-0002NT-BO; Sat, 27 Aug 2022 15:02:31 -0400 Original-Received: by mail-lf1-x132.google.com with SMTP id q7so6046823lfu.5; Sat, 27 Aug 2022 12:02:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc; bh=m1n7R/xzSCbNyTtNxlANDCM6mXpwNdvwGx99VNRrO8I=; b=Ra7+KqXTsX9qpIkgLYjs/9LrQKZb0DJOTLv342jSbZUSTdvgWIZPnYQ2dUTJAiGBRX bwWLTL88yGbpsVZmFaOW2q2iI8t2UDACMzuwUGAfUbYDKiypE3cbMyjWJ4h3vesj6/iQ iQEXwmrzJQf1LKlIMA1G/95qJXmiFYacdqNTARF1mfJnuedqE8YfXZ04/HFQASDtctFO 7uKGOVZn52ldvREywzPumqzBkTj1jnaUJf2YBuCGZ+U4nzYA+YbS57VZErC0xcOYWjHS 9VT3ECAJWP0wRBO0C5I59j9hdRe+FvUPXEZFdAhRRrpBk/UogzAP+EdrJBoCl1xuPlO+ qdzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc; bh=m1n7R/xzSCbNyTtNxlANDCM6mXpwNdvwGx99VNRrO8I=; b=I/BO7I7A5MG6px0GQXjuAHigv93VL5ERvU/vMKSirVliP0XR4rkI9eUSnsStGC91PT UGbuyKLqLCXgOww/joHNZmCvRzhfa0ya15z4vE+XWycdUfQqSIgEsNv/k45g8YRohpUS IlqJxIJvPKMWoS4AJxhpK6yQv5OsOmH8KS1tqRs6EIafTBjBNrzghu4VtHeTrybJSxZ+ x98Dy6ztz3d9fJlqpHy8x4iBPhlyDOLcICNEr7AQrU5M9GbKhPGTQjp4eUZ1OOH811Fd DzdYtbVtA8E8xf6uVzuWKgv95twsngrdDEL4dxyMzcM+TQ00PcxJ7I3g0zAScOYtFCDu itYQ== X-Gm-Message-State: ACgBeo3LkWhG0AzxGy/XrQTEq+ODwc0jXI0o0XhR+DF5K1NxjYXxV9zV Bgyzl9+yiRN0d8fpwCJdZr0n14fW5n9Om4Wp9V12ZpEd X-Google-Smtp-Source: AA6agR52n/yQSHfEhSwEevWAt+Ls4yEcCa7W7FXx2Xz7Qo7PqtxLU/TIZiEler2CXy701tEQ+q+SswhgWAmL2DFI3vs= X-Received: by 2002:a05:6512:3e06:b0:492:c648:7d1c with SMTP id i6-20020a0565123e0600b00492c6487d1cmr4306501lfv.8.1661626947549; Sat, 27 Aug 2022 12:02:27 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=2a00:1450:4864:20::132; envelope-from=damien.mattei@gmail.com; helo=mail-lf1-x132.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.io gmane.lisp.guile.devel:21333 gmane.lisp.guile.user:18544 Archived-At: --000000000000f5406c05e73dab37 Content-Type: text/plain; charset="UTF-8" hello Maxime, On Sat, Aug 27, 2022 at 7:00 PM Maxime Devos wrote: > > On 27-08-2022 18:48, Damien Mattei wrote: > > My ideas is as it is so easy to cheat the compiler > > I don't think it's cheating or abusive. > > from seeing the expressio context why does the compiler restrict this? > expression and defintion context, i'm not sure they are in scheme > standarts, are they really usefull? > why not remove this from Scheme at all? > > I haven't read the RnRS closely, but I doubt that > > (some-procedure (define foo 0) (define bar 0)) > ? i do not understand well the meaning > is allowed by the standard and that it could be meaningful. > in fact just allow 'define that act locally ,see my comment below > Also, even if (begin ...) and (let () ...) where unified, it would be a > shame to lose the ability to only have some definitions temporarily: > > (define foo 0) > > (let ((foo 0)) > whatever-something-using-the-inner-foo) > > something-using-the-outer-foo-again > i do not propose foo to overwrite the global one , just to allow local define that have a local (in the block) range. > If 'let' was replaced by 'begin', then it would have different semantics. > > Greetings, > Maxime. > Regards, Damien --000000000000f5406c05e73dab37 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
hello=C2=A0Maxime,

On Sat, Aug 27, 2022 at 7:00 PM M= axime Devos <maximedevos@telen= et.be> wrote:
=20 =20 =20


On 27-08-2022 18:48, Damien Mattei wrote:
My ideas is as it is so easy to cheat the compiler
I don't think it's cheating or abusive.
from seeing the expressio context why does the compiler restrict this? expression and defintion context, i'm not sure they are in scheme standarts, are they really usefull?
why not remove this from Scheme at all?

I haven't read the RnRS closely, but I doubt that

(some-procedure (define foo 0) (define bar 0))

? i do not understa= nd well the meaning
=

is allowed by the standard and that it could be meaningful.

= in fact just allow 'define that act locally=C2=A0,see my comment below
=

Also, even if (begin ...) and (let () ...) where unified, it would be a shame to lose the ability to only have some definitions temporarily:

(define foo 0)

(let ((foo 0))
=C2=A0 whatever-something-using-the-inner-foo)

something-using-the-outer-foo-again

i do not propose foo to overwr= ite the global one , just to allow local define that have a local (in the b= lock) range.

If 'let' was replaced by 'begin', then it would have= different semantics.

Greetings,
Maxime.


Regards,
Damien=C2=A0
--000000000000f5406c05e73dab37--