CIS194/Homework 1/hanoi.hs

14 lines
204 B
Haskell

type Peg = String
type Move = (Peg, Peg)
hanoi :: Integer -> Peg -> Peg -> Peg -> [Move]
hanoi 1 a b c = [(a, c)]
hanoi n a b c = concat [
hanoi (n-1) a c b,
hanoi 1 a b c,
hanoi (n-1) b a c ]