v2 / vlib / v / tests / fns / recursive_closure_assignment_test.v
13 lines · 13 sloc · 217 bytes · 6787724420b4a9dcb65becb303ee74f3d95fe35c
Raw
1fn test_recursive_closure_assignment() {
2 one := 1
3 mut fact := fn (n int) int {
4 return 1
5 }
6 fact = fn [one, fact] (n int) int {
7 if n <= 1 {
8 return one
9 }
10 return n * fact(n - 1)
11 }
12 assert fact(5) == 120
13}
14