From 959927f7ce1930509fa7dc3679eba96d23b5ec6e Mon Sep 17 00:00:00 2001 From: Scott Richmond Date: Thu, 19 May 2022 16:17:30 -0400 Subject: [PATCH] Play with circular refs around closures --- src/ludus/interpreter.clj | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/src/ludus/interpreter.clj b/src/ludus/interpreter.clj index f5e38f5..6383566 100644 --- a/src/ludus/interpreter.clj +++ b/src/ludus/interpreter.clj @@ -405,37 +405,9 @@ (def source " - fn swap! (rf, f) -> { - let val = deref (rf) - let new = f (val) - set! (rf, new) - } + let foo = :bar - let counter = { - ref i = 0 - - fn next () -> { - let n = deref (i) - if eq (n, 3) - then (:done, nil) - else { - swap! (i, inc) - (:value, n) - } - } - - ns Counter {next} - } - - print (counter :next ()) - print (counter :next ()) - print (counter :next ()) - print (counter :next ()) - print (counter :next ()) - - let foo = nil - - counter + fn foof () -> panic! (:oops) ")