Escolar Documentos
Profissional Documentos
Cultura Documentos
0+10 == 10 + 0 == 10
[ ] ++ 1,2,3 == 1,2,3 ++ [ ] == [1,2,3]
R:A.Monoide.
Monoides seguem a teoria das categorias e o princípio da identidade, que diz que
duas expressões podem ser unidades, contanto que não produzam efeitos. Bind é o
principal operador
monádico. Funtor e funtor aplicativo são funções capazes de mapear estruturas
monádicas. Mônadas são estruturas que contêm valores e comportamentos que podem ser
utilizados em
outras funções com o auxílio de funtores.
2. Estruturas monádicas também têm a sua origem na teoria das categorias e utilizam
expressões algébricas para realizar computações que causam efeitos colaterais. Uma
mônada
utilizada em determinada função irá gerar outra estrutura de mesmo tipo. Sabendo
disso, dada a função main, que recebe uma string IO, marque a alternativa que
implementa
corretamente uma linha de código que recebe uma string e retorna uma mônada IO:
main :: IO ( )
R: C. Pure.
Dentro do conceito de funtores e funtores aplicativos, diz-se que funções (ou
valores) encapsuladas são acessadas e geram novas funções ou novos valores também
encapsulados. A função
pure realiza o encapsulamento desse novo valor gerado. A função print mostra um
resultado na tela. A fmap é um funtor capaz de acessar dados encapsulados. A função
getLine é um
comportamento da função IO ( ), responsável pela entrada de um dado no sistema.
A função main recebe uma string IO vazia, em seguida, precisa-se declarar a notação
do dizendo que esta deve extrair resultado da função main. Em seguida, precisa-se
declarar uma
função de entrada e, finalmente, uma função de saída. Ponto e vírgula não são
utilizados em Haskell e a notação do tipo -> significa que uma função está
recebendo algum parâmetro. Neste
caso, precisa-se que a função main retorne algo e não receba. Portanto, a expressão
que representa a correta sintaxe da utilização da notação do é:
main :: IO ( )
main = do
line <- getLine
putStrLn line