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