diff options
| author | Zuhaitz <zuhaitz.zechhub@gmail.com> | 2026-01-25 10:37:37 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-01-25 10:37:37 +0000 |
| commit | 2852e409a1acd55104aa8ed7679c566192c88607 (patch) | |
| tree | cbbc7006ccd93082cc6b1da1c4a0c4a0f93f51ac /tests | |
| parent | 17cc0542def402f5b0788ff9e8fe0538f81d5ddf (diff) | |
| parent | 026e3322b0cd6b1c813b05c1b65bea192a0be041 (diff) | |
Merge pull request #122 from Burnett01/fix/lambda-block-syntax-fn
fix(parser_expr): lambda block syntax "fn"
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/functions/test_lambdas.zc | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/functions/test_lambdas.zc b/tests/functions/test_lambdas.zc index 5f2c086..a0daaf1 100644 --- a/tests/functions/test_lambdas.zc +++ b/tests/functions/test_lambdas.zc @@ -60,6 +60,37 @@ test "test_complex_lambdas" { println " -> Nested application: Failed"; exit(1); } + + // Lambda with "fn" syntax (eg. block lambda) + var factor = 2; + var full = fn(x: int) -> int { return x * factor }; + + if (full(3) == 6) { + println " -> Lambda fn syntax: Passed"; + } else { + println " -> Lambda fn syntax: Failed"; + exit(1); + } + + // Lambda with "fn" syntax (eg. block lambda) + multiple params + var addition = fn(sum1: int, sum2: int) -> int { return sum1 + sum2 }; + + if (addition(100, 505) == 605) { + println " -> Lambda fn syntax: Passed"; + } else { + println " -> Lambda fn syntax: Failed"; + exit(1); + } + + // Lambda with "fn" syntax (eg. block lambda) + named args + var substract = fn(arg1: int, arg2: int) -> int { return arg1 - arg2 }; + + if (substract(arg1: 500, arg2: 100) == 400) { + println " -> Lambda fn syntax: Passed"; + } else { + println " -> Lambda fn syntax: Failed"; + exit(1); + } println "All complex lambda tests passed!"; |
