summaryrefslogtreecommitdiff
path: root/khb/test.khb
diff options
context:
space:
mode:
Diffstat (limited to 'khb/test.khb')
-rw-r--r--khb/test.khb67
1 files changed, 67 insertions, 0 deletions
diff --git a/khb/test.khb b/khb/test.khb
new file mode 100644
index 0000000..f109016
--- /dev/null
+++ b/khb/test.khb
@@ -0,0 +1,67 @@
+$$ integers (n, nmax, qo) =
+ (n > nmax ?
+ (-1) >> qo
+ :
+ n >> qo;
+ become integers(n+1, nmax, qo)
+ )
+
+# Version alternative :
+$$ integers (n, nmax, qo) =
+ ]->[ (
+ (n > nmax ? ->[]);
+ n >> qo;
+ n = n + 1
+ );
+ -1 >> qo
+
+$$ filter (n, qi, qo) =
+ val << qi;
+ (val != -1 ?
+ (val % n != 0 ?
+ val >> qo
+ );
+ become filter(n, qi, qo)
+ :
+ -1 >> qo
+ )
+
+# Version alternative :
+$$ filter (n, qi, qo) =
+ ]->[ (
+ val << qi;
+ (val == -1 ? ->[]);
+ (val % n != 0 ? val >> qo)
+ );
+ -1 >> qo
+
+$$ primes (qi) =
+ val << qi;
+ (val != -1 ?
+ val >> stdout;
+ c = <>;
+ | become filter(val, qi, c.out) |;
+ become primes(c.in)
+ )
+
+# Version alternative :
+$$ primes (qi) =
+ ]->[ (
+ val << qi;
+ (val == -1 ? ->[]);
+ val >> stdout;
+ c = <>;
+ | filter(val, qi, c.out) |;
+ qi = c.in
+ )
+
+$$ main () =
+ c = <>;
+ | integers (2, 5000, c.out) |;
+ primes (c.in)
+
+
+
+
+
+