Urs Liska <u...@openlilylib.org> writes:

> Am 7. November 2016 01:20:23 MEZ, schrieb Andrew Bernard
> <andrew.bern...@gmail.com>:
>>Hi Simon,
>>
>>Thanks! Exactly perfect. Sometimes the completely obvious escapes me.
>>Better
>>have another coffee.
>>
>>Most appreciated.
>>
>>I suppose of course that to make it a predicate without the preliminary
>>let
>>block (not that I have any objection to that) one would have to modify
>>lilypond internals, which would not be desirable.
>
> Not at all!
>
> Just define your predicate with
>
> #(define (side? obj)
>   (if (or (eq? obj 'left)
>           (eq? obj 'right))
>       #t #f))

When I see something like (if ... #t #f) I get a rash.  It doesn't
really get more redundant than that.

At any rate, the usual check would be (memq obj '(left right)) and if
you really need #t when true (rather than anything but #f) you can still
write (and (memq obj '(left right)) #t).  But if you work with eq? like
you did, the results will be #f and #t anyway already.

As a condition, anything but #f counts as true.

-- 
David Kastrup

_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to