[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: if-let and when-let: parallel or sequential
From: |
Harald Hanche-Olsen |
Subject: |
Re: if-let and when-let: parallel or sequential |
Date: |
Mon, 11 Aug 2014 18:40:24 +0200 (CEST) |
[Stefan Monnier <address@hidden> (2014-08-11 14:42:19 UTC)]
> > if-let and when-let don’t make much sense with more than one binding
> > form.
>
> Why do you think so? If they only work for a single binding, the
> benefit is really minor. It's only when you use several bindings that
> the benefit becomes more significant (the alternative being either
> a very deeply nested code, or separating the var's declarations from
> their initialization).
Indeed, it looks useful. But may I point out that the docstring seems
deficient? From the source code, I see that the the evaluation
short-circuits, so that evaluating
(defun foo () (insert "called foo\n") nil)
(defun bar () (insert "called bar\n") t)
(if-let ((FOO (foo))
(BAR (bar)))
(insert "aye\n")
(insert (format "nope: %s\n" BAR)))
produces
called foo
nope: nil
I can see how that is useful, but it needs to be documented better.
I'm afraid the resulting docstring may end up longer than the code,
but then so be it.
– Harald
- if-let and when-let: parallel or sequential, John Mastro, 2014/08/09
- Re: if-let and when-let: parallel or sequential, Stefan Monnier, 2014/08/10
- Re: if-let and when-let: parallel or sequential, Bozhidar Batsov, 2014/08/11
- Re: if-let and when-let: parallel or sequential, Lars Magne Ingebrigtsen, 2014/08/11
- Re: if-let and when-let: parallel or sequential, Richard Stallman, 2014/08/11
- Re: if-let and when-let: parallel or sequential, John Mastro, 2014/08/11
- Re: if-let and when-let: parallel or sequential, Elias Mårtenson, 2014/08/12