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 |
|
|