--- Begin Message ---
Subject: |
map is not continuation-safe |
Date: |
Fri, 13 Nov 2015 08:34:21 +0000 |
With Guile 2.0.11:
scheme@(guile-user)> (define cc #f)
scheme@(guile-user)> (map (lambda (v) (if (= v 0) (call/cc (lambda (c) (set! cc
c) 0)) (+ v 1))) '(10 20 30 0 40 50 60))
$1 = (11 21 31 0 41 51 61)
scheme@(guile-user)> (cc 5)
$2 = (61 51 41 0 31 5 41 51 61)
It worked correctly in Guile 1.8.
-zefram
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#21900: map is not continuation-safe |
Date: |
Mon, 20 Jun 2016 18:01:35 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
On Fri 13 Nov 2015 09:34, Zefram <address@hidden> writes:
> With Guile 2.0.11:
>
> scheme@(guile-user)> (define cc #f)
> scheme@(guile-user)> (map (lambda (v) (if (= v 0) (call/cc (lambda (c) (set!
> cc c) 0)) (+ v 1))) '(10 20 30 0 40 50 60))
> $1 = (11 21 31 0 41 51 61)
> scheme@(guile-user)> (cc 5)
> $2 = (61 51 41 0 31 5 41 51 61)
>
> It worked correctly in Guile 1.8.
"Fixed" in the upcoming 2.2 release, though I think we consider this
more of an implementation detail than a bug.
Andy
--- End Message ---