RosettaCodeData/Task/Ackermann-function/Haskell/ackermann-function-1.hs

8 lines
176 B
Haskell

ack :: Int -> Int -> Int
ack 0 n = succ n
ack m 0 = ack (pred m) 1
ack m n = ack (pred m) (ack m (pred n))
main :: IO ()
main = mapM_ print $ uncurry ack <$> [(0, 0), (3, 4)]