From e1bfc3e17eda8e0f7f507f9526a0ee3be0d09508 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 24 Jul 2016 16:29:38 +0200 Subject: [PATCH] <=, >=: take multiple arguments. --- scm.mes | 12 ++++++------ test.mes | 6 ++++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/scm.mes b/scm.mes index 57afb211..b086625c 100755 --- a/scm.mes +++ b/scm.mes @@ -166,13 +166,13 @@ (cond (x #f) (#t #t))) -(define (<= a b) ;; FIXME: only 2 arg - (or (< a b) - (= a b))) +(define (<= . rest) + (or (apply < rest) + (apply = rest))) -(define (>= a b) ;; FIXME: only 2 arg - (or (> a b) - (= a b))) +(define (>= . rest) + (or (apply > rest) + (apply = rest))) (define quotient /) diff --git a/test.mes b/test.mes index b200d849..659e5ed9 100644 --- a/test.mes +++ b/test.mes @@ -271,6 +271,12 @@ (pass-if "> 4" (seq? (> 2 1 0) #t)) (pass-if "> 5" (seq? (> 1 2 0) #f)) +(pass-if ">=" (seq? (>= 3 2 1) #t)) +(pass-if ">= 2" (seq? (>= 1 2 3) #f)) + +(pass-if "<=" (seq? (<= 3 2 1) #f)) +(pass-if "<= 2" (seq? (<= 1 2 3) #t)) + (newline) (display "passed: ") (display (car (result))) (newline) (display "failed: ") (display (cadr (result))) (newline)