sasagawa888 / eisl

ISLisp interpreter/compiler
Other
267 stars 22 forks source link

bug compiled mapcar #279

Closed sasagawa888 closed 1 year ago

sasagawa888 commented 1 year ago
(defun sum (xs)
  (let ((a 0))
    (mapc (lambda (x) (setq a (+ a x)) (print a)) xs)
    a))

(defun sum-a (xs)
  (let ((a 0))
    (print (mapcar (lambda (x) (setq a (+ a x)) a) xs))
    a))
Easy-ISLisp Ver2.99
> (load "tests/bug.o")
T
> (sum '(1 2 3 4 5))
1
3
6
10
15
0
> (sum-a '(1 2 3 4 5))
(15 14 12 9 5)
0
> 
sasagawa888 commented 1 year ago

Fixed in interpreter. But in compiler it is very complex.

sasagawa888 commented 1 year ago

Fixed in compiler.