blob: dc2b0442329086aca41de5a799c2e4cc7d01cf94 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
module acker
// The Ackermann function.
//import StdInt
(+) infixl 6 :: !Int !Int -> Int
(+) a b = code inline {
addI
}
(-) infixl 6 :: !Int !Int -> Int
(-) a b = code inline {
subI
}
Acker::Int Int -> Int
Acker 0 j = j + 1
Acker i 0 = Acker (i - 1) 1
Acker i j = Acker (i - 1) (Acker i (j - 1))
Start::Int
Start = Acker 3 7
|