diff options
-rw-r--r-- | eval.c | 2 | ||||
-rw-r--r-- | tests/012/lazy.tl | 6 |
2 files changed, 7 insertions, 1 deletions
@@ -5428,7 +5428,7 @@ static val lazy_mapcar_func(val env, val lcons) us_cons_bind (fun, iter, env); us_rplaca(lcons, funcall1(fun, iter_item(iter))); - us_rplacd(env, iter_step(iter)); + us_rplacd(env, iter = iter_step(iter)); if (iter_more(iter)) us_rplacd(lcons, make_lazy_cons(us_lcons_fun(lcons))); diff --git a/tests/012/lazy.tl b/tests/012/lazy.tl new file mode 100644 index 00000000..be04412a --- /dev/null +++ b/tests/012/lazy.tl @@ -0,0 +1,6 @@ +(load "../common") + +(test [mapcar* list nil] nil) +(test [mapcar* list '(1)] ((1))) +(test [mapcar* list '(1 2 3)] ((1) (2) (3))) +(test [mapcar* list '(1 2 3) '(a b c)] ((1 a) (2 b) (3 c))) |