Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1) Crie uma função de ordenação sort::(a->a->Bool)->[a]->[a] que recebe uma função de comparação e uma lista, e ordena a lista de acordo com a função.
- > sort (>) [1,4,2,3,8,15,0] [15,8,4,3,2,1,0]
- 2) Crie uma função agrupar :: Eq a => [a] -> [[a]] , que recebe uma lista e devolve uma lista de lista dos elementos iguais
- Exemplo:
- > agrupar "arara"
- ["aaa","rr"]
- > agrupar [1,2,5,1,2,4,5,6,7,5,2,4]
- [[1,1],[2,2,2],[5,5,5],[4,4],[6],[7]]
- > agrupar [True,False,True,False,False,True]
- [[True,True,True],[False,False,False]]
- Considere os seguintes tipos sinônimos:
- type Lado = Float
- type Triangulo = (Lado, Lado, Lado)
- 3) Implemente uma função que recebe uma lista de Triangulo e retorna a soma das áreas dos respectivos triângulos. Use obrigatoriamente as funções foldr1 e map.
- 4) Implemente uma função functions :: [(a -> a -> a)] -> [a] -> [(a -> a)] que recebe uma lista de funções binárias e uma lista de valores. O funcionamento de functions é tal que aplica cada função a um respectivo elemento da lista de valores e retorna uma lista de funções parcialmente aplicadas. Dê alguns exemplos de entrada e respectiva saída para functions.
- Considere uma lista de nomes completos de pessoas, escreva uma função que retorne a lista de nomes abreviados da seguinte forma:
- > abrev ["Alberto Rodrigues Pontes", "Amanda Azevedo Mendes"]
- ["A. Mendes", "A. Pontes"]
- Depois de abreviados ordene a lista em ordem alfabética, utilize funções como map, fold e filter para resolver a questão.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement