1 # example program: compute the factorial of 5
 2 
 3 def main [
 4   local-scope
 5   x:num <- factorial 5
 6   $print [result: ], x, [ 
 7 ]
 8 ]
 9 
10 def factorial n:num -> result:num [
11   local-scope
12   load-ingredients
13   {
14   ¦ # if n=0 return 1
15   ¦ zero?:bool <- equal n, 0
16   ¦ break-unless zero?
17   ¦ return 1
18   }
19   # return n * factorial(n-1)
20   x:num <- subtract n, 1
21   subresult:num <- factorial x
22   result <- multiply subresult, n
23 ]
24 
25 # unit test
26 scenario factorial-test [
27   run [
28   ¦ 1:num <- factorial 5
29   ]
30   memory-should-contain [
31   ¦ 1 <- 120
32   ]
33 ]