]> jfr.im git - irc/thales.git/commitdiff
Simplify code by restricting it to needed generality
authorDmitry Bogatov <redacted>
Thu, 12 Dec 2013 16:08:47 +0000 (10:08 -0600)
committerDmitry Bogatov <redacted>
Thu, 12 Dec 2013 16:08:47 +0000 (10:08 -0600)
src/thales/solver.scm

index 1e929e373c66204a1e6dcf67c24dd574a219fa9d..946fcc0df9ddb4a496af02ad109217d0c90c0194 100644 (file)
 (use-modules (srfi srfi-26))
 
 (sealed version-compatible?
-       (& '(1 2) '(1 2 0) => #t)
-       (& '(1 2 3) '(1 2 2) => #f))
+    (& '(1 2) '(1 2 0) => #t)
+    (& '(1 2 3) '(1 2 2) => #t))
+
+(define (version-compatible? v1 v2)
+    "Version is compatible, if major versions is equal
+and minor is no less."
+    (and (=  (car v1)  (car v2))
+        (<= (cadr v1) (cadr v2))))
 
 (sealed satisfy
        (& '(foo ? (1 0))
           => #f))
 
 
-
-(define (version-compatible? v1 v2)
-    (if (equal? (car v1) (car v2))
-       (let version<= ((v1 (cdr v1)) (v2 (cdr v2)))
-           (match v1
-               [(x v1-rest ...)
-                (match v2
-                    ['() #f]
-                    [(y v2-rest ...)
-                     (cond [(< x y) #t]
-                           [(> x y) #f]
-                           [#t (version<= v1-rest v2-rest)])])]
-               ['() #t]))
-       #f))
-
-(define (version-equal? v1 v2)
-    (unless (and (list? v1) (list? v2))
-       (error "Invalid versions: ~a ~a" v1 v2))
-    (equal? v1 v2))
-
-
 (define (satisfy constr package)
     (match package
        ([pkgname pkg-version _ ...]