[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: when and unless
From: |
David Kastrup |
Subject: |
Re: when and unless |
Date: |
Wed, 07 Dec 2011 15:27:17 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.90 (gnu/linux) |
address@hidden (Ludovic Courtès) writes:
> address@hidden (Ludovic Courtès) skribis:
>
>> Andy Wingo <address@hidden> skribis:
>>
>>> On Thu 30 Jun 2011 12:44, Andy Wingo <address@hidden> writes:
>>>
>>>> I think we should add `when' and `unless' to the default environment.
>>>>
>>>> They go like this:
>>>>
>>>> (define-syntax when
>>>> (syntax-rules ()
>>>> ((_ test then then* ...)
>>>> (if test (begin then then* ... (if #f #f))))))
>>>>
>>>> (define-syntax unless
>>>> (syntax-rules ()
>>>> ((_ test else else* ...)
>>>> (if (not test) (begin else else* ... (if #f #f))))))
>>>
>>> WDYT? `unless' is nice for assertions, `when' is its converse, and most
>>> Schemes have them. I would like to add them to Guile too.
>>
>> Yes, feel free.
>
> Like Marijn, it seems more natural for me to return the values of the
> body’s last expression, rather than *unspecified*.
Can you explain how that would even make sense? You can't return a
specified value when the condition is not true since then no form gets
evaluated. So where is the point in returning a value that is only
sometimes specified? "Sometimes specified" logically is pretty much the
same as "unspecified", and then we might return *unspecified* right
away.
--
David Kastrup
Re: when and unless, Chris K. Jester-Young, 2011/12/06
Re: when and unless, Ludovic Courtès, 2011/12/06