2017-07-24 22:37 GMT+02:00 Shiro Kawai <xxxxxx@gmail.com>:
On Mon, Jul 24, 2017 at 4:55 AM, Panicz Maciej Godek <xxxxxx@gmail.com> wrote:

(is _ < x < y) is allowed, but it is bad programming style: within the scope of this expression,
(< x y) already has a definite value which doesn't have to be evaluated every time the function
is called.

It doesn't have a definite value if x and/or y are mutable variables or non-pure expressions; in such case (< x y) has to be evaluated every time.

Of course, strictly speaking you're right, but I can't imagine a realistic use case that wouldn't be considered bad programming style.
I do agree however that the limitation of allowing the underscore only in the position of the first or the second argument feels artificial,
and I am willing to fix that in the second draft
That's why srfi-26 has cut and cute.

While I managed to trace some uses of cut in the real world Scheme code base, I didn't find a single use of cute.
And while I think that one could add a variant of "is", say, "ise", that would evaluate certain complex expressions
only once, I believe that having an explicit "let" wrapped around both "is" and "cut" is cleaner than the use of "cute".

What do you think?