--napraveno ot Anton i Svetlin, a binev uchastvashe kato durvo i o6te ne6to
super::String->String->String
super a b = a++b++b
super2::Int->Int->Int
super2 a b = a*b + b
data Seasons = Spring | Summer | Autumn | Winter deriving (Show, Eq)
seasonIndex Spring = 0
seasonIndex Summer = 1
seasonIndex Autumn = 2
seasonIndex Winter = 3
data Person = MakePerson String Int String deriving (Show)
my (MakePerson name age address) = age
--definirane na durvoto binev
data BinTree = Empty | Node Int BinTree BinTree deriving (Show, Eq)
--tova e samiq binev
b = Node 4 (Node 3 Empty (Node 1 Empty Empty)) (Node 6 Empty Empty)
sumList [] = 0
sumList l = (head l) + (sumList(tail l))
sumTree Empty = 0
sumTree (Node v l r) = v + sumTree l + sumTree r
sumEven Empty = 0
sumEven (Node v l r) = if even v then v + sumEven l + sumEven r else sumEven l + sumEven r
sumL Empty = 0
sumL (Node v l r) = if (l==Empty)&&(r==Empty) then v else sumL l + sumL r
-- List ot vuzlite na binev
lNode Empty = []
lNode (Node v l r) = v : ((lNode l)++(lNode r))
--viso4inata na binev
heightT Empty = 0
heightT (Node v l r) = 1 + max (heightT l) (heightT r)
--Spisak ot elementite na dadeno nivo na binev
level (Node v l r) 0 = [v]
level Empty k = []
level (Node v l r) k = (level l (k-1))++(level r (k-1))