quinta-feira, 7 de abril de 2011

Solução desafio 3

insere p [] = [(p,1)]
insere p (t:ts) = if p == fst(t)
then (p, snd(t)+1):ts
else if p < fst(t)
then (p,1):(t:ts)
else t:(insere p ts)


split [] delim = [""]
split (c:cs) delim
   | c == delim = "" : rest
   | otherwise = (c : head rest) : tail rest
   where
       rest = split cs delim


ordenaL (p:[]) = insere p []
ordenaL (p:ps) = insere p (ordenaL ps)

ordena ts = ordenaL (split ts ' ')

quinta-feira, 31 de março de 2011

Solução para Combinações

comb xs 1 = [[x] | x<-xs]
comb [] p = []
comb (x:xs) p = [[x]++y | y<-(comb xs (p-1))]++(comb xs p)