34 lines
529 B
Plaintext
34 lines
529 B
Plaintext
# example program: compute the factorial of 5
|
|
|
|
def main [
|
|
local-scope
|
|
x:num <- factorial 5
|
|
$print [result: ], x, [
|
|
]
|
|
]
|
|
|
|
def factorial n:num -> result:num [
|
|
local-scope
|
|
load-inputs
|
|
{
|
|
# if n=0 return 1
|
|
zero?:bool <- equal n, 0
|
|
break-unless zero?
|
|
return 1
|
|
}
|
|
# return n * factorial(n-1)
|
|
x:num <- subtract n, 1
|
|
subresult:num <- factorial x
|
|
result <- multiply subresult, n
|
|
]
|
|
|
|
# unit test
|
|
scenario factorial-test [
|
|
run [
|
|
1:num <- factorial 5
|
|
]
|
|
memory-should-contain [
|
|
1 <- 120
|
|
]
|
|
]
|