-- datovy typ Par je vzdycky vyrobeny pomoci datoveho konstruktoru Dva, -- a obsahuje 2 inty data Par = Dva Int Int deriving (Show) --dekonstrukce datoveho typu (patternmatchovanim Dva) sectiPar :: Par -> Int sectiPar (Dva a b) = a + b vypisPar (Dva a b) = show a ++ "," ++ show b --dekonstrukce a konstrukce obraceneho paru prohodPar (Dva a b) = Dva b a -- datovy typ Strom je vyrobeny bud jako Uzel (obsahujici Strom, Int a Strom) -- nebo jako List. data Strom = Uzel Strom Int Strom | List deriving (Show) -- testovaci strom testStrom = Uzel (Uzel List 1 List) 2 List -- je ve strome hodnota? lookupS :: Int -> Strom -> Bool lookupS k List = False lookupS k (Uzel l x r) | k == x = True | k < x = lookupS k l | otherwise = lookupS k r