diff options
| author | Baitinq <[email protected]> | 2025-03-12 00:47:31 +0100 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-03-12 00:47:43 +0100 |
| commit | da0788140e7afbc9b0bcbb937a29e2b08de08ec7 (patch) | |
| tree | ef6435c7c91f40926f01f5faa9b4dbc2946a5caf /examples/13.src | |
| parent | Codegen: add bundled llvm (diff) | |
| parent | Codegen: Fix bug with functions without name (diff) | |
| download | pry-lang-da0788140e7afbc9b0bcbb937a29e2b08de08ec7.tar.gz pry-lang-da0788140e7afbc9b0bcbb937a29e2b08de08ec7.tar.bz2 pry-lang-da0788140e7afbc9b0bcbb937a29e2b08de08ec7.zip | |
Merge branch 'master' into native-llvm
Diffstat (limited to 'examples/13.src')
| -rw-r--r-- | examples/13.src | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/examples/13.src b/examples/13.src new file mode 100644 index 0000000..eeb5b32 --- /dev/null +++ b/examples/13.src @@ -0,0 +1,31 @@ +let main = () => i64 { + /* Iterative Fibonacci using while loop. */ + let fibonacci_iter = (n: i64) => i64 { + let a = 0; + let b = 1; + let i = 0; + while i < n { + let temp = b; + b = a + b; + a = temp; + i = i + 1; + }; + return a; + }; + + /* Recursive GCD using Euclid's algorithm. */ + let gcd = (a: i64, b: i64) => i64 { + if b == 0 { + return a; + }; + return gcd(b, a % b); + }; + + let fib_val = fibonacci_iter(10); + print(fib_val); + + let gcd_val = gcd(48, 18); + print(gcd_val); + + return 0; +}; |