| module Uebungsblatt04 where
xxx :: Integer -> Integer xxx 0 = 1 xxx n = 2 * xxx (n-1)
zhn :: Integer -> Integer zhn 0 = 1 zhn n = 2 * zhn ( n - 1 )
foo :: Integer -> Integer -> Integer foo m 0 = m foo m n = foo n ( m `mod` n )
ggT :: Integer -> Integer -> Integer ggT m 0 = m ggT m n = ggT n ( m `mod` n )
bar :: Integer -> Bool bar 1 = False bar n = [ x | x <- [ 2 .. n - 1 ], n `mod` x == 0 ] == []
isPrim :: Integer -> Bool isPrim 1 = False isPrim n = [ 42 | x <- [2..n-1], n `mod` x==0]==[]
fibonacci :: Int -> Int fibonacci 0 = 0 fibonacci 1 = 1 fibonacci n = fibonacci (n-1) + fibonacci (n-2)
fibonacci2 :: Int -> Int fibonacci2 n | n <= 1 = n | otherwise = fibonacci2 (n-1) + fibonacci2 (n-2)
fibonacci3 :: Int -> Int fibonacci3 n | n == 0 = 0 | n == 1 = 1 | otherwise = fibonacci3 ( n - 1 ) + fibonacci3 ( n - 2 )
summiere :: Num a => [a] -> a summiere [] = 0 summiere (x:xs) = x + summiere xs
palindrom :: String -> Bool palindrom xs | length xs <= 1 = True | otherwise = head xs == last xs && palindrom ( tail ( init xs ))
umrechnung :: Integer -> Integer -> [Integer] umrechnung z b | z == 0 = [0] | otherwise = umrechnung1 ( div z b ) b ++ [mod z b] where umrechnung1 :: Integer -> Integer -> [Integer] umrechnung1 z b | z == 0 = [] | otherwise = umrechnung1 ( div z b ) b ++ [mod z b]
|