Guile already allows mixed definitions and expressions in let bodies (since
2.9.4), which isn't in any of the Scheme reports. It's up to authors to avoid
or isolate Guile extensions if they want to remain rnrs compatible, and this
patch doesn't change that.
Being able to put definitions in th
On Wed, 25 Jan 2023, at 16:38, Greg Troxel wrote:
> My reaction, without thinking much, and being fuzzy on a lot of things
> is that part of the point of guile is that it is Scheme which to me
> means RnRS conformance. Of course it's not exactly and every other
> Scheme impl is not exactly. B
On Wed, 25 Jan 2023, at 16:09, Ludovic Courtès wrote:
> Hello!
>
> Linus Björnstam skribis:
>
>
> Daniel pushed this as 764e3614b8c13de604399572a67d071621e9ca21 in
> ‘main’. I had completely overlooked this thread but I wasn’t quite sure
> about it, so I did not include it in 3.0.9.
>
> The re
Ludovic Courtès writes:
> The reason I’m hesitant is that, while I think it’s nice to be able to
> have local ‘define’ in these contexts, I’m wary of diverging from R5RS
> and R6RS. Since it’s a one-way change (we won’t be able to revert it
> once people rely on it), I thought we’d rather be car
Hello!
Linus Björnstam skribis:
> This commit adds internal definitions to derived conditional forms,
> with-fluids and and-let*. This means the bodies of when, unless and
> with-fluids, and the clause bodies of case and cond behave like a
> lambda body.
>
> There is no performance hit since gui
Hi,
lloda skribis:
> From 70ce7174a43ba17f2db0c3a6b7eeeb191a332663 Mon Sep 17 00:00:00 2001
> From: Daniel Llorens
> Date: Tue, 24 Jan 2023 11:26:44 +0100
> Subject: [PATCH 2/2] Document multiple-value returns in forms taking a
> let-expression body
>
> * doc/ref/api-binding.texi (Local Bindin
> On 24 Jan 2023, at 10:02, Ludovic Courtès wrote:
>
> Hi!
>
> lloda skribis:
>
@lisp
-(@var{test} @var{body} @dots{})
+(@var{test} @var{body})
>>>
>>> I think removing dots is incorrect here because it suggests, according
>>> to the typographic conventions used in the documen
Hi!
lloda skribis:
>>> @lisp
>>> -(@var{test} @var{body} @dots{})
>>> +(@var{test} @var{body})
>>
>> I think removing dots is incorrect here because it suggests, according
>> to the typographic conventions used in the document, that there can only
>> be a single expression.
[...]
> This was a
Hi!
Sorry about the delay, I have an updated patch somewhere, but I started working
after 4 months paternity leave and family life's fortunes has it so that I
haven't used a computer since the last time I wrote an email in this thread
(this is written on a phone).
This is likely how will be in
Hi Ludovic,
> On 23 Jan 2023, at 23:13, Ludovic Courtès wrote:
>
> Hi Daniel,
>
> Chiming in late in the discussion…
>
> lloda skribis:
>
>> From 7aea299373f7370f31c9701035260ad412763724 Mon Sep 17 00:00:00 2001
>> From: Daniel Llorens
>> Date: Thu, 19 Jan 2023 16:23:29 +0100
>> Subject:
Hi Daniel,
Chiming in late in the discussion…
lloda skribis:
> From 7aea299373f7370f31c9701035260ad412763724 Mon Sep 17 00:00:00 2001
> From: Daniel Llorens
> Date: Thu, 19 Jan 2023 16:23:29 +0100
> Subject: [PATCH 2/2] Fix documentation for forms taking lambda-like bodies
>
> * doc/ref/api-co
> On 19 Jan 2023, at 18:54, lloda wrote:
>
> Attached a patch that applies after yours and refers to the explanation of
> bodies elsewhere in the manual. Wdyt?
Second version, fixes text for the same type of body for other forms.
Regards
Daniel
0002-Fix-documentation-for-forms-taking-l
Attached a patch that applies after yours and refers to the explanation of
bodies elsewhere in the manual. Wdyt?
Regards
Daniel
0001-Fix-doc-for-conditional-forms-taking-lambda-like-bod.patch
Description: Binary data
That is a better way to write it indeed. clause-body being equal to a lambda
body.
Thank you.
No problem.
Nb. I made an oversight - the section of R7RS with the grammar I quoted
says:
"These were derived from rules in the grammar given in chapter 7 by
replacing some occurrences of with ,
On Fri, 18 Nov 2022, at 11:22, Lassi Kortela wrote:
> R7RS defines the syntax of `let` et.al. as follows (section 3.5):
>
> (let (*) )
>
> Where:
>
> = *
> = *
>
> So their definition of lambda:
>
> (lambda * * )
>
> could be abbreviated:
>
> (lambda )
>
> I haven't read "Fixing letrec" but i
Not quite. Guile extends the lambda body (and by extension let-forms) to allow
mixed definitions and expressions:
(lambda ()
(display "Heippa!")
(define routsi #t)
(and (read) routsi))
which expands to, more or less, a letrec*. All in accordance to the paper
fixing letrec(reloaded).
On Fri, 18 Nov 2022, at 10:27, Lassi Kortela wrote:
>> Would "is like the body of a lambda" be a better wording?
>
> R7RS section 3.5. says:
>
> (lambda * * )
>
> The * are the stuff you are adding.
Not quite. Guile extends the lambda body (and by extension let-forms) to allow
mixed definitions
Would "is like the body of a lambda" be a better wording?
R7RS section 3.5. says:
(lambda * * )
The * are the stuff you are adding.
Hi!
Well, the point of the change is to make it so that things other than
expressions are allowed. I change it to say @var{body}, and then later clarify
that @var{test} is an arbitrary expression and @var{body} is a lambda-like
body.
Which when reading it now sounds... not very good.
Would
Hi Linus,
I don't understand the following change since at least one expression is
required in these clauses.
@lisp
(@var{test} => @var{expression})
@@ -217,7 +217,7 @@ result of the @code{cond}-expression.
@var{key} may be any expression, and the @var{clause}s must have the form
@lisp
-
thanks,hope it will be in a next stable release of Guile
regards,
damien
On Wed, Nov 9, 2022 at 4:34 PM Linus Björnstam
wrote:
> Hi there!
>
> This commit adds internal definitions to derived conditional forms,
> with-fluids and and-let*. This means the bodies of when, unless and
> with-fluids,
() ...) without
internal definitions to a begin (i.e: no new lexical context is created).
best regards
Linus BjörnstamFrom 7eeb91b822334b151c5b4a15ce9528a2a655d914 Mon Sep 17 00:00:00 2001
From: Linus
Date: Wed, 9 Nov 2022 16:15:18 +0100
Subject: [PATCH] Add internal definitions to derived forms
This
22 matches
Mail list logo