aboutsummaryrefslogtreecommitdiff
path: root/examples/fib_gen.sloth
diff options
context:
space:
mode:
Diffstat (limited to 'examples/fib_gen.sloth')
-rw-r--r--examples/fib_gen.sloth14
1 files changed, 14 insertions, 0 deletions
diff --git a/examples/fib_gen.sloth b/examples/fib_gen.sloth
new file mode 100644
index 0000000..dd9e08f
--- /dev/null
+++ b/examples/fib_gen.sloth
@@ -0,0 +1,14 @@
+fn fib(n: i32) -> i32 {
+ match n {
+ 0 | 1 => n,
+ _ => fib(n - 1) + fib(n - 2),
+ }
+}
+
+generator fn fib_sequence(range: Range<i32>) -> i32 {
+ for n in range {
+ yield fib(n);
+ }
+}
+
+print(fib_sequence(0..20).join(", "))