/[gcl]/gcl/ansi-tests/lambda.lsp
ViewVC logotype

Diff of /gcl/ansi-tests/lambda.lsp

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

revision 1.1 by pfdietz, Fri Nov 29 21:48:06 2002 UTC revision 1.2 by pfdietz, Sat Apr 19 04:30:43 2003 UTC
# Line 45  Line 45 
45    ((lambda (x) (declare (type symbol x))) 'z)    ((lambda (x) (declare (type symbol x))) 'z)
46    nil)    nil)
47    
48  ;;; Should test lambda argument lists more fully here  (deftest lambda.11
49      ((lambda (x &optional y z) (list x y z)) 1 2)
50      (1 2 nil))
51    
52    (deftest lambda.12
53      ((lambda (&optional (x 'a) (y 'b) (z 'c)) (list x y z)) 1 nil)
54      (1 nil c))
55    
56    (deftest lambda.13
57      ((lambda (&optional (x 'a x-p) (y 'b y-p) (z 'c z-p))
58         (list* x y z (mapcar #'notnot (list x-p y-p z-p)))) 1 nil)
59      (1 nil c t t nil))
60    
61    (deftest lambda.14
62      (let ((x 1))
63        ((lambda (&optional (x (1+ x))) x)))
64      2)
65    
66    (deftest lambda.15
67      ((lambda (y &optional (x (1+ y))) (list y x)) 10)
68      (10 11))
69    
70    (deftest lambda.16
71      ((lambda (y &optional (x (1+ y))) (list y x)) 10 14)
72      (10 14))
73    
74    (deftest lambda.17
75      ((lambda (&rest x) x) 1 2 3)
76      (1 2 3))
77    
78    (deftest lambda.18
79      (let ((b 10))
80        ((lambda (&optional (a b) (b (1+ a))) (list a b)) 3 7))
81      (3 7))
82    
83    (deftest lambda.19
84      (let ((b 10))
85        ((lambda (&optional (a b) (b (1+ a))) (list a b)) 3))
86      (3 4))
87    
88    (deftest lambda.20
89      (let ((b 10))
90        ((lambda (&optional (a b) (b (1+ a))) (list a b))))
91      (10 11))
92    
93    (deftest lambda.21
94      (flet ((%f () (locally (declare (special *x*)) (incf *x*))))
95        ((lambda (*x*)
96           (declare (special *x*))
97           (%f)
98           *x*)
99         10))
100      11)
101    
102    (deftest lambda.22
103      (flet ((%f () (locally (declare (special *x*)) (1+ *x*))))
104        ((lambda (*x*)
105           (declare (special *x*))
106           (%f))
107         15))
108      16)
109    
110    (deftest lambda.23
111      ((lambda (&key a) a))
112      nil)
113    
114    (deftest lambda.24
115      ((lambda (&key a b c) (list a b c)))
116      (nil nil nil))
117    
118    (deftest lambda.25
119      ((lambda (&key (a 1) (b 2) (c 3)) (list a b c)))
120      (1 2 3))
121    
122    (deftest lambda.26
123      ((lambda (&key)))
124      nil)
125    
126    (deftest lambda.27
127      ((lambda (&key) 'good) :allow-other-keys nil)
128      good)
129    
130    (deftest lambda.28
131      ((lambda (&key) 'good) :allow-other-keys t :foo t)
132      good)
133    
134    (deftest lambda.29
135      ((lambda (&key) 'good) :allow-other-keys t :allow-other-keys nil :foo t)
136      good)
137    
138    (deftest lambda.30
139      ((lambda (&key x) x) :allow-other-keys t :x 10
140       :allow-other-keys nil :foo t)
141      10)
142    
143    (deftest lambda.31
144      ((lambda (&rest x &key) x))
145      nil)
146    
147    (deftest lambda.32
148      ((lambda (&rest x &key) x) :allow-other-keys nil)
149      (:allow-other-keys nil))
150    
151    (deftest lambda.33
152      ((lambda (&rest x &key) x) :w 5 :allow-other-keys t :x 10)
153      (:w 5 :allow-other-keys t :x 10))
154    
155    (deftest lambda.34
156      ((lambda (&key (a 1 a-p) (b 2 b-p) (c 3 c-p)) (list a (notnot a-p)
157                                                          b (notnot b-p)
158                                                          c (notnot c-p)))
159       :c 5 :a 0)
160      (0 t 2 nil 5 t))
161    
162    (deftest lambda.35
163      ((lambda (&key (a 1 a-p) (b 2 b-p) (c 3 c-p)) (list a (notnot a-p)
164                                                          b (notnot b-p)
165                                                          c (notnot c-p)))
166       :c 5 :a nil :a 17 :c 100)
167      (nil t 2 nil 5 t))
168    
169    (deftest lambda.36
170      ((lambda (&key (a 1 a-p) (b 2 b-p) (c 3 c-p)) (list a (notnot a-p)
171                                                          b (notnot b-p)
172                                                          c (notnot c-p)))
173       :c 5 :a 0 :allow-other-keys t 'b 100)
174      (0 t 2 nil 5 t))
175    
176    (deftest lambda.37
177      (let ((b 1))
178        ((lambda (&key (a b) b) (list a b)) :b 'x))
179      (1 x))
180    
181    (deftest lambda.38
182      (let ((b 1))
183        ((lambda (&key (a b) b) (list a b)) :b 'x :a nil))
184      (nil x))
185    
186    (deftest lambda.39
187      (let ((a-p :bad))
188        ((lambda (&key (a nil a-p) (b a-p)) (list a (notnot a-p) (notnot b)))))
189      (nil nil nil))
190        
191    (deftest lambda.40
192      (let ((a-p :bad))
193        ((lambda (&key (a nil a-p) (b a-p)) (list a (notnot a-p) (notnot b)))
194         :a 1))
195      (1 t t))
196    
197    (deftest lambda.41
198      (let ((a-p :bad))
199        ((lambda (&key (a nil a-p) (b a-p)) (list a (notnot a-p) (notnot b)))
200         :a nil))
201      (nil t t))
202    
203    (deftest lambda.42
204      ((lambda (&key a b &allow-other-keys) (list a b)) :a 1 :b 2)
205      (1 2))
206    
207    (deftest lambda.43
208      ((lambda (&key a b &allow-other-keys) (list a b)) :b 2 :a 1)
209      (1 2))
210    
211    (deftest lambda.44
212      ((lambda (&key a b &allow-other-keys) (list a b)) :z 10 :b 2 :b nil :a 1
213       :a 2 'x 100)
214      (1 2))
215    
216    (deftest lambda.45
217      ((lambda (&key a b &allow-other-keys) (list a b)) :allow-other-keys nil
218       :z 10 :b 2 :b nil :a 1 :a 2 'x 100)
219      (1 2))
220    
221    (deftest lambda.46
222      ((lambda (&key a b allow-other-keys) (list allow-other-keys a b))
223       :allow-other-keys nil :a 1 :b 2)
224      (nil 1 2))
225    
226    (deftest lambda.47
227      ((lambda (&key a b allow-other-keys) (list allow-other-keys a b))
228       :c 10 :allow-other-keys t :a 1 :b 2 :d 20)
229      (t 1 2))
230    
231    (deftest lambda.48
232      ((lambda (&key a b allow-other-keys &allow-other-keys)
233         (list allow-other-keys a b))
234       :d 40 :allow-other-keys nil :a 1 :b 2 :c 20)
235      (nil 1 2))
236    
237    (deftest lambda.48
238      ((lambda (&key a b allow-other-keys &allow-other-keys)
239         (list allow-other-keys a b))
240       :d 40 :a 1 :b 2 :c 20)
241      (nil 1 2))
242    
243    (deftest lambda.49
244      ((lambda (&key a b ((:allow-other-keys aok)))
245         (list aok a b))
246       :d 40 :a 1 :allow-other-keys t :b 2 :c 20)
247      (t 1 2))
248    
249    (deftest lambda.50
250      ((lambda (&key &allow-other-keys)) :a 1 :b 2 :c 3)
251      nil)
252    
253    
254  ;;; Tests of lambda as a macro  ;;; Tests of lambda as a macro
255    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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