Am 14.01.2015 um 12:28 schrieb Richard Shann:
On Wed, 2015-01-14 at 11:29 +0100, Urs Liska wrote:
Am 14.01.2015 um 11:18 schrieb Mattes:
Am Mittwoch, 14. Januar 2015 09:42 CET, Urs Liska <u...@openlilylib.org> schrieb:
Yes, I made some surprising progress with Scheme recently. I didn't even
get stuck in the ands and parens in the actual predicate I wrote
#(define (annotation? obj)
(and
(and (list? obj)
(every pair? obj))
(and (if (assoc-ref obj "type") #t #f)
(if (assoc-ref obj "location") #t #f))))
Proper indentation helps ;-)
But why so contrived? Your code is equivalent to:
#(define (annotation? obj)
(and
(list? obj)
(every pair? obj)
(if (assoc-ref obj "type") #t #f)
(if (assoc-ref obj "location") #t #f)))
... and is this just equivalent to:
#(define (annotation? obj)
(and
(list? obj)
(every pair? obj)
(assoc-ref obj "type")
(assoc-ref obj "location")))
???
I don't think so because the result of the function would be the result
of the last expression.
assoc-ref returns the "value" to the "key", so if passed a valid object
the result of the predicate wouldn't be #t but the content of "location".
That's why I enclosed these checks in if constructs.
Urs
Richard
HTH Ralf Mattes
Thanks, this is of course better.
sorting out nested conditionals has never been my strongest point ;-)
Urs
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user