summaryrefslogtreecommitdiffstats
path: root/tests/012/cont.tl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/012/cont.tl')
-rw-r--r--tests/012/cont.tl19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/012/cont.tl b/tests/012/cont.tl
new file mode 100644
index 00000000..6bdfa14c
--- /dev/null
+++ b/tests/012/cont.tl
@@ -0,0 +1,19 @@
+(load "../common")
+
+(vtest (let ((f (obtain (for ((i 0)) () ((inc i)) (yield i)))))
+ (take 2000 (gun (call f))))
+ (range* 0 2000))
+
+(defun yflatten (obj)
+ (labels ((flatten-rec (obj)
+ (cond
+ ((null obj))
+ ((atom obj) (yield-from yflatten obj))
+ (t (flatten-rec (car obj))
+ (flatten-rec (cdr obj))))))
+ (flatten-rec obj)
+ nil))
+
+(test (let ((f (obtain (yflatten '(a b (c . d) (e (f (g))))))))
+ (gun [f]))
+ (a b c d e f g))