|
From: | dak |
Subject: | Re: Add lilypond version predicates/operators (issue 317270043 by address@hidden) |
Date: | Tue, 14 Feb 2017 11:55:02 -0800 |
On 2017/02/14 18:20:56, git wrote:
Ah yes. I had removed the (and (eq? op =) part, which I shouldn't have done
Well, that works only for a very particular equivalence. How about something like #(define (lexicographically op a b) (let* ((ca (car a)) (iseql (op ca ca))) (let loop ((ca ca) (cb (car b)) (a (cdr a)) (b (cdr b))) (let ((axb (op ca cb))) (if (and (pair? a) (pair? b) (eq? axb iseql (op cb ca))) (loop (car a) (car b) (cdr a) (cdr b)) axb))))) #(define (ly:version? op . rest) (lexicographically op (ly:version) rest)) #(format #t "> 2.19 : ~S, >= 2.19 : ~S\n= 2.16 : ~S, = 2.19 : ~S\n" (ly:version? > 2 19) (ly:version? >= 2 19) (ly:version? = 2 16) (ly:version? = 2 19)) https://codereview.appspot.com/317270043/
[Prev in Thread] | Current Thread | [Next in Thread] |