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-inputs 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 ]