diff --git a/Fib.hs b/Fib.hs index e764d9a..5fb67e4 100644 --- a/Fib.hs +++ b/Fib.hs @@ -4,5 +4,6 @@ fib 1 = 1 fib n = fib (n-2) + fib (n-1) +main :: IO () main = print (fib 10) diff --git a/Hanoi.hs b/Hanoi.hs new file mode 100644 index 0000000..35ad56e --- /dev/null +++ b/Hanoi.hs @@ -0,0 +1,16 @@ +data Tower = First | Middle | Last deriving Show + +data Instruction = Move Tower Tower deriving Show + +-- show :: Instruction -> String +-- show Move from to = "Moving " ++ show from ++ " to " ++ show to + +solve :: Tower -> Tower -> Tower -> Integer -> [Instruction] +solve _ _ _ 0 = [] +solve from over to n = solve from to over (n - 1) ++ [Move from to] ++ solve over from to (n - 1) + +main :: IO () +main = let + solution = solve First Middle Last 4 + in + print solution diff --git a/LinkedList.hs b/LinkedList.hs new file mode 100644 index 0000000..7efc1d2 --- /dev/null +++ b/LinkedList.hs @@ -0,0 +1,14 @@ +data LinkedList a = Empty | Cons a (LinkedList a) + +cons :: a -> LinkedList a -> LinkedList a +cons elem list = Cons elem list + +first :: LinkedList a -> Maybe a +first Empty = Nothing +first (Cons first _) = Just first + +main :: IO () +main = + let + a = Empty + in print "asdf"