view exercises/src/Exercise_5.hs @ 11:a721abd5a135

week 5
author Markus Kaiser <markus.kaiser@in.tum.de>
date Wed, 14 Nov 2012 18:33:30 +0100
parents
children 8496af3b866b
line wrap: on
line source

module Exercise_5 where
import Data.Maybe

{- Library DO NOT CHANGE -}
type State = Integer
type DA = (State, State -> Char -> State, State -> Bool)
type ListDA = (State, [((State, Char), State)], [State])

a :: DA
a = (0, delta, (==1))
  where
    delta 0 'a' = 1
    delta 1 'a' = 1
    delta 2 'a' = 1
    delta 0 'b' = 2
    delta 1 'b' = 2
    delta 2 'b' = 2

toDA :: ListDA -> DA
toDA (start, delta, final) = (start, deltaFun delta, (`elem` final))
  where deltaFun dl = curry (fromMaybe 0 . flip lookup dl)
{- End Library -}


{---------------------------------------------------------------------}
{- Aufgabe G5.1 -}

iter :: Int -> (a -> a) -> a -> a
iter n f x = undefined


pow :: Int -> Int -> Int
pow n k = undefined


drop' :: Int -> [a] -> [a]
drop' n xs = undefined


replicate' :: Int -> a -> [a]
replicate' n x = undefined



{---------------------------------------------------------------------}
{- Aufgabe G5.2 -}

partition_rec :: (a -> Bool) -> [a] -> ([a], [a])
partition_rec p xs = undefined


partition_foldl :: (a -> Bool) -> [a] -> ([a], [a])
partition_foldl p xs = undefined


partition_filter :: (a -> Bool) -> [a] -> ([a], [a])
partition_filter p xs = undefined


zipWith' :: (a -> b -> c) -> [a] -> [b] -> [c]
zipWith' f xs ys = undefined



{---------------------------------------------------------------------}
{- Aufgabe H5.1 -}

fixpoint :: (a -> a -> Bool) -> (a -> a) -> a -> a
fixpoint = undefined


cents :: [Integer] -> [Integer]
cents = undefined


trancl :: [(Integer, Integer)] -> [(Integer, Integer)]
trancl = undefined



{---------------------------------------------------------------------}
{- Aufgabe H5.2 -}

advance :: DA -> State -> String -> State
advance = undefined


prop_advance_empty :: ListDA -> State -> Bool
prop_advance_empty = undefined


prop_advance_single :: ListDA -> State -> Char -> Bool
prop_advance_single = undefined


prop_advance_concat :: ListDA -> State -> String -> String -> Bool
prop_advance_concat = undefined


accept :: DA -> String -> Bool
accept = undefined


reachableStates :: DA -> State -> [Char] -> [State]
reachableStates = undefined



{---------------------------------------------------------------------}
{- Aufgabe H5.3 -}

{-WETT-}
quasiSubseq :: Eq a => [a] -> [a] -> Bool
quasiSubseq xs ys = undefined
{-TTEW-}