Starting a random Haskell dump. Will continue to add to this sporadically.
Factorial
fact 0 = 1
fact n = n*fact(n-1)
HCF and LCM
Note how LCM requires use of a “div” function for integer division
hcf n 0 = n
hcf n m = hcf m (mod n m)
lowcm n m = div (n*m) (hcf n m)
Ackermann Function
ackermann 0 m = m+1
ackermann n 0 = ackermann (n-1) 1
ackermann n m = ackermann (n-1) (ackermann n (m-1))
Tetration
tetration n 0 = 1
tetration n m = n^(tetration n (m-1))
Hyper Operations
Crude, rushed version. Could probably be made better.
hyper 1 n m = n+m
hyper 2 n 0 = 0
hyper h n 0 = 1
hyper h n m = hyper (h-1) n (hyper h n (m-1))
Example of main function
Included because I’m 100% brand new to Haskell and need a reminder.
main :: IO ()
main = print $ hcf 800 1200