unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: lloda <lloda@sarc.name>
To: Damien Mattei <damien.mattei@gmail.com>
Cc: Jeronimo Pellegrini <j_p@aleph0.info>, guile-user <guile-user@gnu.org>
Subject: Re: cond clause does not allow definitions
Date: Wed, 22 May 2024 22:40:12 +0200	[thread overview]
Message-ID: <51D80A86-273A-4D6C-B5CD-71BAC68475BC@sarc.name> (raw)
In-Reply-To: <489A2170-F3A4-4DB8-A52A-249C3178A516@sarc.name>


Fwiw Guile isn't 100% consistent about this, for example match forms don't allow definitions and maybe some other form that I don't recall atm.

> On 22 May 2024, at 22:37, lloda <lloda@sarc.name> wrote:
> 
> 
> This is probably http://git.savannah.gnu.org/gitweb/?p=guile.git;a=commitdiff;h=764e3614b8c13de604399572a67d071621e9ca21 <http://git.savannah.gnu.org/gitweb/?p=guile.git;a=commitdiff;h=764e3614b8c13de604399572a67d071621e9ca21> and the next commit that documents the change. It was after 3.0.9.
> 
>> On 22 May 2024, at 22:33, Damien Mattei <damien.mattei@gmail.com <mailto:damien.mattei@gmail.com>> wrote:
>> 
>> Bonjour,
>> 
>> so it is with the version i currently use which is older than you:
>> (base) mattei@mbp-touch-bar library-FunctProg % guile
>> GNU Guile 3.0.8.99-f3ea8
>> Copyright (C) 1995-2022 Free Software Foundation, Inc.
>> 
>> Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
>> This program is free software, and you are welcome to redistribute it
>> under certain conditions; type `,show c' for details.
>> 
>> Enter `,help' for help.
>> scheme@(guile-user)> (cond (#t (define x 7) x))
>> While compiling expression:
>> Syntax error:
>> unknown file:1:10: definition in expression context, where definitions are
>> not allowed, in form (define x 7)
>> 
>> thanks
>> 
>> On Wed, May 22, 2024 at 10:07 PM Jeronimo Pellegrini <j_p@aleph0.info <mailto:j_p@aleph0.info>>
>> wrote:
>> 
>>> Hello!
>>> 
>>> On 2024-05-22 16:26, Damien Mattei wrote:
>>>> scheme@(guile-user)> (cond (#t (define x 7) x))
>>>> While compiling expression:
>>>> Syntax error:
>>>> unknown file:7:10: definition in expression context, where definitions
>>>> are
>>>> not allowed, in form (define x 7)
>>> 
>>> I get no error here (Guile 3.0.9.164-e1690, compiled locally):
>>> 
>>> scheme@(guile-user)> (cond (else (define x 7) x))
>>> $1 = 7
>>> scheme@(guile-user)> (cond (#t (define x 7) x))
>>> $2 = 7
>>> 
>>> A: (cond (#t (define x 7) x))
>>> B: (cond (else (define x 7) x))
>>> 
>>> | system      | A     | B     |
>>> |-------------|-------|-------|
>>> | Bigloo      | 7     | 7     |
>>> | Biwa        | 7     | 7     |
>>> | Chez        | error | 7     |
>>> | Chibi       | error | 7     |
>>> | Chicken     | 7     | 7     |
>>> | Cyclone     | 7     | 7     |
>>> | Gambit      | error | error |
>>> | Gauche      | 7     | 7     |
>>> | Guile       | 7     | 7     |
>>> | Kawa        | 7     | 7     |
>>> | LIPS        | 7     | error |
>>> | Loko        | error | error |
>>> | MIT         | error | 7     |
>>> | Racket      | 7     | 7     |
>>> | Sagittarius | 7     | 7     |
>>> | Scheme48    | error | 7     |
>>> | Scheme 9    | error | 7     |
>>> | SCM         | 7     | 7     |
>>> | STklos      | 7     | 7     |
>>> | Tinyscheme  | 7     | 7     |
>>> 
>>> * LIPS does not recognise the 'else' clause.
>>> 
>>> J.
>>> 
> 



  reply	other threads:[~2024-05-22 20:40 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-22 19:26 cond clause does not allow definitions Damien Mattei
2024-05-22 20:07 ` Jeronimo Pellegrini
2024-05-22 20:33   ` Damien Mattei
2024-05-22 20:34     ` Damien Mattei
2024-05-22 20:37     ` lloda
2024-05-22 20:40       ` lloda [this message]
2024-05-22 21:07   ` Pierpaolo Bernardi
2024-05-22 22:09     ` Damien Mattei
2024-05-22 22:37     ` Jeronimo Pellegrini
2024-05-23 14:25       ` Damien Mattei
2024-05-23 14:59         ` Pierpaolo Bernardi
2024-05-22 22:12 ` Maxime Devos
2024-05-22 22:34   ` Damien Mattei
2024-05-24 14:27 ` Linus Björnstam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51D80A86-273A-4D6C-B5CD-71BAC68475BC@sarc.name \
    --to=lloda@sarc.name \
    --cc=damien.mattei@gmail.com \
    --cc=guile-user@gnu.org \
    --cc=j_p@aleph0.info \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).