Skip to content

Instantly share code, notes, and snippets.

@BenLubar
Last active August 29, 2015 14:00
Show Gist options
  • Save BenLubar/11027625 to your computer and use it in GitHub Desktop.
Save BenLubar/11027625 to your computer and use it in GitHub Desktop.
ackermann :: Integer -> Integer -> Integer
ackermann 0 n = n+1
ackermann m 0 = ackermann (m-1) 1
ackermann m n = ackermann (m-1) (ackermann m (n-1))
up :: Integer -> Integer -> Integer -> Integer
up a b 0 = a*b
up a b 1 = a^b
up _ 0 _ = 1
up a b n = up a (up a (b-1) n) (n-1)
g :: Integer -> Integer
g 0 = 4
g n = up 3 3 (g (n-1))
main :: IO ()
main = print $ ackermann (g 64) (g 64)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment