RosettaCodeData/Task/Anonymous-recursion/EMal/anonymous-recursion.emal

15 lines
457 B
Text
Raw Permalink Normal View History

2024-10-16 18:07:41 -07:00
fun fibonacci ← int by int n
if n < 0
logLine("Invalid argument: " + n)
return -1 # we could raise an error instead
2023-07-01 11:58:00 -04:00
end
2024-10-16 18:07:41 -07:00
fun actualFibonacci ← <int n|when(n < 2,
n, actualFibonacci(n - 1) + actualFibonacci(n - 2))
2023-07-01 11:58:00 -04:00
return actualFibonacci(n)
end
2024-10-16 18:07:41 -07:00
writeLine("F(0) = ", fibonacci(0))
writeLine("F(20) = ", fibonacci(20))
writeLine("F(-10) = ", fibonacci(-10))
writeLine("F(30) = ", fibonacci(30))
writeLine("F(10) = ", fibonacci(10))