summaryrefslogtreecommitdiff
path: root/fib.kpl
diff options
context:
space:
mode:
Diffstat (limited to 'fib.kpl')
-rw-r--r--fib.kpl15
1 files changed, 14 insertions, 1 deletions
diff --git a/fib.kpl b/fib.kpl
index e8ebeb8..4b7fb15 100644
--- a/fib.kpl
+++ b/fib.kpl
@@ -1,10 +1,23 @@
// Fibonacci sequence for all numeric types
-fib : Fn[n] $ (
+`export fib : Fn[n] $ (
? {
n <= 0 { 0 }
n < 3 { 2 }
{ `call_sync(fib; n - 1) + fib `call_sync n - 2 }
}
)
+
+`is_main Fn $ (
+ ( args ) : `use "sys"
+ ? 3 != `length args {
+ `return `error String $ (
+ "Got: "; " " `join args; "\n"
+ "Usage: "; args `get 0; " "; args `get 1; " <number>\n"
+ )
+ }
+ n : I64 $ args `get -1
+ ( print ) : `use "io"
+ print `call_sync String $ ("fib("; n; ") = "; fib `call_sync n; "\n")
+)