From: Bruno H. <br...@cl...> - 2005-01-24 16:00:48
|
Forms: (let ((x 5)) (let ((y (1+ x))) (declare (special x)) y)) (let ((x 5)) (let* ((y (1+ x))) (declare (special x)) y)) Expected: 6 for both Got: 6 for the first, ERROR for the second. I always thought LET and LET* with a single binding were equivalent! A similar test case: (LET ((X 5)) (PROGV '(X) '(20) (LET* ((Y (1+ X)) (Z (1+ X))) (DECLARE (SPECIAL X)) Z))) Expected: 6 Got: 21 And a similar test case with LAMBDA: (LET ((X 5)) (PROGV '(X) '(20) ((LAMBDA (&OPTIONAL (Y (1+ X)) (Z (1+ X))) (DECLARE (SPECIAL X)) Z)))) Expected: 6 Got: 21 Bruno |
From: Christophe R. <cs...@ca...> - 2005-01-24 17:33:33
|
Bruno Haible <br...@cl...> writes: > Forms: (let ((x 5)) (let ((y (1+ x))) (declare (special x)) y)) > (let ((x 5)) (let* ((y (1+ x))) (declare (special x)) y)) > Expected: 6 for both > Got: 6 for the first, ERROR for the second. > > I always thought LET and LET* with a single binding were equivalent! Yeah, we (or at least I and Brian Downing :-) know... there's a good number of ansi-tests about this, too. Cheers, Christophe |