From 6cfcbaabb574ce376653dd2ba58eacfe9b93541b Mon Sep 17 00:00:00 2001 From: Stelian Ionescu Date: Mon, 11 May 2009 00:51:16 +0200 Subject: [PATCH] Define RUNE= and RUNE-EQUAL with DEFINE-RUNE-COMPARISON. --- src/base/runes.lisp | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/src/base/runes.lisp b/src/base/runes.lisp index 0ed18ab..505a959 100644 --- a/src/base/runes.lisp +++ b/src/base/runes.lisp @@ -70,12 +70,6 @@ (or (< rune #xD800) (> rune #xDFFF))) -(defun rune= (rune &rest more-runes) - (check-type rune rune) - (assert (every #'runep more-runes)) - (dolist (r more-runes t) - (unless (= r rune) (return nil)))) - (defun rune/= (rune &rest more-runes) (check-type rune rune) (assert (every #'runep more-runes)) @@ -83,13 +77,6 @@ (length (remove-duplicates (list* rune more-runes) :test #'=)))) -(defun rune-equal (rune &rest more-runes) - (check-type rune rune) - (assert (every #'runep more-runes)) - (let ((rune (rune-downcase rune))) - (dolist (r more-runes t) - (unless (= (rune-downcase r) rune) (return nil))))) - (defun rune-not-equal (rune &rest more-runes) (check-type rune rune) (assert (every #'runep more-runes)) @@ -108,13 +95,15 @@ ((null ,list) t) (unless (,test ,r (,key (car ,list))) (return nil))))))) + (define-rune-comparison rune= = ) + (define-rune-comparison rune-equal = :key rune-downcase) (define-rune-comparison rune< < ) - (define-rune-comparison rune> > ) - (define-rune-comparison rune<= <= ) - (define-rune-comparison rune>= >= ) (define-rune-comparison rune-lessp < :key rune-downcase) + (define-rune-comparison rune> > ) (define-rune-comparison rune-greaterp > :key rune-downcase) + (define-rune-comparison rune<= <= ) (define-rune-comparison rune-not-greaterp <= :key rune-downcase) + (define-rune-comparison rune>= >= ) (define-rune-comparison rune-not-lessp >= :key rune-downcase)) (defun alpha-rune-p (rune) -- 2.11.4.GIT