87 |
;;; x)) |
;;; x)) |
88 |
;;; 11) |
;;; 11) |
89 |
|
|
90 |
|
;;; Tests of large number of LET variables |
91 |
|
(deftest let.14 |
92 |
|
(let* ((n 1000) |
93 |
|
(vars (mapcar #'gensym (make-list n :initial-element "G"))) |
94 |
|
(expr `(let ,(let ((i 0)) |
95 |
|
(mapcar #'(lambda (v) (list v (incf i))) vars)) |
96 |
|
,(let ((sumexpr 0)) |
97 |
|
(dolist (v vars) |
98 |
|
(setq sumexpr `(+ ,v ,sumexpr))) |
99 |
|
sumexpr))) |
100 |
|
(val (eval expr))) |
101 |
|
(or (eqlt val (/ (* n (1+ n)) 2)) (list val))) |
102 |
|
t) |
103 |
|
|
104 |
;;; Tests for LET* |
;;; Tests for LET* |
105 |
|
|
106 |
(deftest let*.1 |
(deftest let*.1 |
176 |
;;; (declare (special x)) |
;;; (declare (special x)) |
177 |
;;; x)) |
;;; x)) |
178 |
;;; 2) |
;;; 2) |
179 |
|
|
180 |
|
;;; Tests of large number of LET* variables |
181 |
|
(deftest let*.14 |
182 |
|
(let* ((n 1000) |
183 |
|
(vars (mapcar #'gensym (make-list n :initial-element "G"))) |
184 |
|
(expr `(let* ,(let ((i 0)) |
185 |
|
(mapcar #'(lambda (v) (list v (incf i))) vars)) |
186 |
|
,(let ((sumexpr 0)) |
187 |
|
(dolist (v vars) |
188 |
|
(setq sumexpr `(+ ,v ,sumexpr))) |
189 |
|
sumexpr))) |
190 |
|
(val (eval expr))) |
191 |
|
(or (eqlt val (/ (* n (1+ n)) 2)) (list val))) |
192 |
|
t) |