guile-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]