Haskell/Tipos básicos: diferenças entre revisões
[edição não verificada] | [edição não verificada] |
Conteúdo apagado Conteúdo adicionado
m Neste caso, o singular "Trata-se de" é a forma correta |
|||
Linha 200:
== Anotações de tipo em arquivos de código ==
Agora que já entendemos um pouco o que são os tipos e no que eles podem nos ajudar, vejamos como fazer este tipo de anotação num código fonte de um programa que você está escrevendo. Considere a função <code>xor</code> que definimos antes. Se quisermos
<source lang=haskell>
Linha 209:
Só isso. Para maior clareza, é comum que a anotação apareça imediatamente antes da definição, então é recomendável que você se atenha a esta convenção.
Além de
=== Inferindo tipos ===
Como dissemos antes, funções possuem tipo. É importante destacar que elas ''sempre'' possuem tipo. Mas como é que escrevemos as funções do capítulo anterior sem nenhum assinatura? Isso é possível porque o compilador
<source lang=haskell>
Linha 251:
* '''Documentação:''' como já vimos, anotações de tipo ajudam a entender o que uma função faz. ''Documentar'' um programa, é justamente descrever o que suas partes fazem e como funcionam. Claro que comentários ajudam, mas em Haskell as anotações de tipo são tão importantes quanto comentários.
* '''''Debugging'':''' muitos ''bugs'', ou erros encontrados nos programas são causados quando se uma função de forma errada. As anotações de tipo ajudam você e o compilador a descobrir se uma função está sendo usada de forma correta, verificando os tipos das muitas entradas e saídas que seu programa pode gerar. Quando declaramos as anotações e ocorre algum erro de incompatibilidade de tipos, o compilador sempre mostra uma mensagem dizendo onde está o problema. Se os tipos forem omitidos, o compilador pode
Vejamos um exemplo simples de ''debugging''. Tente o seguinte no GHCi:
Linha 266:
}}
É importante dizer que a checagem de tipos não previne completamente a ocorrência de erros. Na verdade, ainda podemos escrever uma função de uma forma que não funcione como a desejada. Mas mesmo aí, pensar nas operações que podemos ou não fazer como cada tipo de dado, nos ajuda guiar nossa lógica programação.
|