summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2015-10-28 06:18:39 -0700
committerKaz Kylheku <kaz@kylheku.com>2015-10-28 06:18:39 -0700
commit92ee851ccfee8ac13a055cbdad503789ffa2a6b9 (patch)
tree84d1efacc138c36d9a077e40a3a8d99a4f2bd300 /tests
parentc39c6e6b72c750180dd13c38db8c69a609dbf574 (diff)
downloadtxr-92ee851ccfee8ac13a055cbdad503789ffa2a6b9.tar.gz
txr-92ee851ccfee8ac13a055cbdad503789ffa2a6b9.tar.bz2
txr-92ee851ccfee8ac13a055cbdad503789ffa2a6b9.zip
Add some tests for continuations.
* tests/012/cont.tl: New file. * tests/012/cont.expected: New file.
Diffstat (limited to 'tests')
-rw-r--r--tests/012/cont.expected0
-rw-r--r--tests/012/cont.tl19
2 files changed, 19 insertions, 0 deletions
diff --git a/tests/012/cont.expected b/tests/012/cont.expected
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/tests/012/cont.expected
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))