diff options
| author | Baitinq <[email protected]> | 2025-06-11 00:16:17 +0200 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-06-11 00:16:17 +0200 |
| commit | fa92a157746ae17f295d31b7a047dfeb99624a13 (patch) | |
| tree | 71e469e67a70df15542d873ebe223654def6111b /examples/12.pry | |
| parent | stdlib: Remove println (diff) | |
| download | pry-lang-fa92a157746ae17f295d31b7a047dfeb99624a13.tar.gz pry-lang-fa92a157746ae17f295d31b7a047dfeb99624a13.tar.bz2 pry-lang-fa92a157746ae17f295d31b7a047dfeb99624a13.zip | |
Misc: Rename lang
Diffstat (limited to 'examples/12.pry')
| -rw-r--r-- | examples/12.pry | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/examples/12.pry b/examples/12.pry new file mode 100644 index 0000000..34519e6 --- /dev/null +++ b/examples/12.pry @@ -0,0 +1,51 @@ +import "!stdlib.pry"; + +let main = () => i64 { + let factorial = (n: i64) => i64 { + let f = (acc: i64, n: i64) => i64 { + if n == 0 { + return acc; + }; + return f(acc * n, n - 1); + }; + return f(1, n); + }; + + let is_even = (n: i64) => bool { + if n % 2 == 0 { + return true; + }; + return false; + }; + + let sum_if = (predicate: (i64) => bool, limit: i64) => i64 { + let sum = 0; + let i = 0; + while i < limit { + if predicate(i) { + sum = sum + i; + }; + i = i + 1; + }; + return sum; + }; + + let fact_val = factorial(6); + printf("%d\n", fact_val); + + let even_sum = sum_if(is_even, 20); + printf("%d\n", even_sum); + + return 0; +}; + +/* + +Expected stdout: + +720 +90 + +Expected return: 0 + +*/ |