Sudan function: Difference between revisions
Content added Content deleted
m (→{{header|Quackery}}: replaced tail-end recursion with loop) |
(add OCaml) |
||
Line 652: | Line 652: | ||
sudan(3, 1, 1) = 10228 |
sudan(3, 1, 1) = 10228 |
||
sudan(2, 2, 1) = 27 |
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> |
</pre> |
||