/[guile]/guile/guile-core/lang/elisp/primitives/lists.scm
ViewVC logotype

Diff of /guile/guile-core/lang/elisp/primitives/lists.scm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by ossau, Wed Jan 30 00:03:40 2002 UTC revision 1.4 by ossau, Fri Feb 8 11:50:51 2002 UTC
# Line 3  Line 3 
3    #:use-module (lang elisp internals null)    #:use-module (lang elisp internals null)
4    #:use-module (lang elisp internals signal))    #:use-module (lang elisp internals signal))
5    
6  (fset 'cons  (fset 'cons cons)
       (lambda (x y)  
         (cons x (or y '()))))  
7    
8  (fset 'null null)  (fset 'null null)
9    
# Line 14  Line 12 
12  (fset 'car  (fset 'car
13        (lambda (l)        (lambda (l)
14          (if (null l)          (if (null l)
15              #f              %nil
16              (car l))))              (car l))))
17    
18  (fset 'cdr  (fset 'cdr
19        (lambda (l)        (lambda (l)
20          (if (null l)          (if (null l)
21              #f              %nil
22              (cdr l))))              (cdr l))))
23    
24  (fset 'eq  (fset 'eq
# Line 35  Line 33 
33    
34  (fset 'setcar set-car!)  (fset 'setcar set-car!)
35    
36  (fset 'setcdr  (fset 'setcdr set-cdr!)
       (lambda (cell newcdr)  
         (set-cdr! cell  
                   (if (null newcdr)  
                       '()  
                       newcdr))))  
37    
38  (for-each (lambda (sym proc)  (for-each (lambda (sym proc)
39              (fset sym              (fset sym
# Line 48  Line 41 
41                      (if (null list)                      (if (null list)
42                          %nil                          %nil
43                          (if (null elt)                          (if (null elt)
44                              (or (proc #f list)                              (let loop ((l list))
45                                  (proc '() list)                                (cond ((null l) %nil)
46                                  (proc %nil list)                                      ((null (car l)) l)
47                                  (proc 'nil list)) ; 'nil shouldn't be                                      (else (loop (cdr l)))))
                                                   ; here, as it should  
                                                   ; have been  
                                                   ; translated by the  
                                                   ; transformer.  
48                              (proc elt list))))))                              (proc elt list))))))
49            '( memq  member  assq  assoc)            '( memq  member  assq  assoc)
50            `(,memq ,member ,assq ,assoc))            `(,memq ,member ,assq ,assoc))
# Line 97  Line 86 
86        (lambda (n list)        (lambda (n list)
87          (if (or (null list)          (if (or (null list)
88                  (>= n (length list)))                  (>= n (length list)))
89              #f              %nil
90              (list-ref list n))))              (list-ref list n))))
91    
92  (fset 'listp  (fset 'listp

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26