Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
10
Task/Ackermann-function/Mercury/ackermann-function.mercury
Normal file
10
Task/Ackermann-function/Mercury/ackermann-function.mercury
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
:- func ack(integer, integer) = integer.
|
||||
ack(M, N) = R :- ack(M, N, R).
|
||||
|
||||
:- pred ack(integer::in, integer::in, integer::out) is det.
|
||||
ack(M, N, R) :-
|
||||
( ( M < integer(0)
|
||||
; N < integer(0) ) -> throw(bounds_error)
|
||||
; M = integer(0) -> R = N + integer(1)
|
||||
; N = integer(0) -> ack(M - integer(1), integer(1), R)
|
||||
; ack(M - integer(1), ack(M, N - integer(1)), R) ).
|
||||
Loading…
Add table
Add a link
Reference in a new issue