(funcq-assoc): Rewrite, don't assume '() is false, and
[bpt/guile.git] / ice-9 / list.scm
dissimilarity index 78%
index bd7871f..eaa19ed 100644 (file)
@@ -1,61 +1,36 @@
-;;;; List functions not provided in R5RS or srfi-1
-
-;;; Copyright (C) 2003 Free Software Foundation, Inc.
-;;;
-;;; This program is free software; you can redistribute it and/or
-;;; modify it under the terms of the GNU General Public License as
-;;; published by the Free Software Foundation; either version 2, or
-;;; (at your option) any later version.
-;;;
-;;; This program is distributed in the hope that it will be useful,
-;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;;; General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with this software; see the file COPYING.  If not, write to
-;;; the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
-;;; Boston, MA 02111-1307 USA
-;;;
-;;; As a special exception, the Free Software Foundation gives permission
-;;; for additional uses of the text contained in its release of GUILE.
-;;;
-;;; The exception is that, if you link the GUILE library with other files
-;;; to produce an executable, this does not by itself cause the
-;;; resulting executable to be covered by the GNU General Public License.
-;;; Your use of that executable is in no way restricted on account of
-;;; linking the GUILE library code into it.
-;;;
-;;; This exception does not however invalidate any other reasons why
-;;; the executable file might be covered by the GNU General Public License.
-;;;
-;;; This exception applies only to the code released by the
-;;; Free Software Foundation under the name GUILE.  If you copy
-;;; code from other Free Software Foundation releases into a copy of
-;;; GUILE, as the General Public License permits, the exception does
-;;; not apply to the code that you add in this way.  To avoid misleading
-;;; anyone as to the status of such modified files, you must delete
-;;; this exception notice from them.
-;;;
-;;; If you write modifications of your own for GUILE, it is your choice
-;;; whether to permit this exception to apply to your modifications.
-;;; If you do not wish that, delete this exception notice.
-
-(define-module (ice-9 list)
-  :export (rassoc rassv rassq))
-
-(define (generic-rassoc key alist =)
-  (let loop ((ls alist))
-      (and (not (null? ls))
-          (if (= key (cdar ls))
-              (car ls)
-              (loop (cdr ls))))))
-
-(define (rassoc key alist . =)
-  (generic-rassoc key alist (if (null? =) equal? (car =))))
-
-(define (rassv key alist)
-  (generic-rassoc key alist eqv?))
-
-(define (rassq key alist)
-  (generic-rassoc key alist eq?))
+;;;; List functions not provided in R5RS or srfi-1
+
+;;; Copyright (C) 2003 Free Software Foundation, Inc.
+;;;
+;; This library is free software; you can redistribute it and/or
+;; modify it under the terms of the GNU Lesser General Public
+;; License as published by the Free Software Foundation; either
+;; version 2.1 of the License, or (at your option) any later version.
+;; 
+;; This library is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+;; Lesser General Public License for more details.
+;; 
+;; You should have received a copy of the GNU Lesser General Public
+;; License along with this library; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+(define-module (ice-9 list)
+  :export (rassoc rassv rassq))
+
+(define (generic-rassoc key alist =)
+  (let loop ((ls alist))
+      (and (not (null? ls))
+          (if (= key (cdar ls))
+              (car ls)
+              (loop (cdr ls))))))
+
+(define (rassoc key alist . =)
+  (generic-rassoc key alist (if (null? =) equal? (car =))))
+
+(define (rassv key alist)
+  (generic-rassoc key alist eqv?))
+
+(define (rassq key alist)
+  (generic-rassoc key alist eq?))