hat-2.7.0.1: examples/Hanoi.hs
main = hanoi 3
hanoi :: Int -> IO ()
hanoi = h 'A' 'B' 'C'
where
h :: Char -> Char -> Char -> Int -> IO ()
h a b c 0 = return ()
h a b c n =
do
h a c b (n-1)
putStr ("move disc from " ++ a : " to " ++ b : "\n")
h c b a (n-1)