Sudan function: Difference between revisions

add OCaml
m (→‎{{header|Quackery}}: replaced tail-end recursion with loop)
(add OCaml)
Line 652:
sudan(3, 1, 1) = 10228
sudan(2, 2, 1) = 27
</pre>
 
=={{header|OCaml}}==
<syntaxhighlight lang="ocaml">let rec sudan = function
| 0, x, y -> x + y
| _, x, 0 -> x
| n, x, y -> let x' = sudan (n, x, pred y) in sudan (pred n, x', x' + y)</syntaxhighlight>
<pre>
# sudan (1, 13, 14) ;;
- : int = 245744
# sudan (2, 5, 1) ;;
- : int = 440
# sudan (2, 2, 2) ;;
- : int = 15569256417
</pre>
 
559

edits