Andrew Tropin on Nostr: How to delimit an undelimited continuation? I want something like this to work ...
How to delimit an undelimited continuation?
I want something like this to work without going into infinite loop (I don't want call/cc to capture context outside of quoted code):
(begin
(define (my-eval exp)
"Maybe some other eval implementation here?"
(primitive-eval exp))
(my-eval `(define kont #f))
(my-eval `(+ 1 (call/cc (lambda (k) (set! kont k) 5))))
(my-eval `(kont 41)))
#guile #scheme #lisp
Published at
2023-10-12 05:01:15Event JSON
{
"id": "0b6375c85ed9f5f3e8c46a4f63d01135cb76d2709ffe9e68bed4daa747888ca3",
"pubkey": "6a3558cf15e6f724383ef20c385d65abf8af54d22fbd7f9c758fda61a08357ed",
"created_at": 1697086875,
"kind": 1,
"tags": [
[
"t",
"f"
],
[
"t",
"guile"
],
[
"t",
"scheme"
],
[
"t",
"lisp"
],
[
"proxy",
"https://fosstodon.org/users/abcdw/statuses/111220285476344719",
"activitypub"
]
],
"content": "How to delimit an undelimited continuation?\n\nI want something like this to work without going into infinite loop (I don't want call/cc to capture context outside of quoted code):\n\n(begin\n (define (my-eval exp)\n \"Maybe some other eval implementation here?\"\n (primitive-eval exp))\n\n (my-eval `(define kont #f))\n (my-eval `(+ 1 (call/cc (lambda (k) (set! kont k) 5))))\n (my-eval `(kont 41)))\n\n#guile #scheme #lisp",
"sig": "e6ab8c13f351003d458cfb0961f8ca50470b8f7c6816a363a4394682caf3924b9adfb1bead6a4dc071251a95c5ac31e094f017ff0adda1b34fbddb0de50786ca"
}