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
Linha 1:
{{clear}}
{{HaskellÍndice|Básico}}
 
Em programação, '''tipo''' são usados para agrupar valores similares, com características similares, dentre de uma certa categoria. Em Haskell, seu sistema de tipos é uma ferramenta poderosa usada para evitar muitos erros triviais dentro de um programa.
 
Linha 115 ⟶ 118:
A representação de texto sempre foi um problema para computadores. Em sua linguagem mais básica, um computador só pode interpretar dados binários: 1 e 0. Para representar um texto, cada caractere deve primeiramente ser convertido a um número, que pode ser convertido para sua forma binária e depois interpretada pelo computador. A conversão para a forma binária é uma tarefa trivial para a máquina, portanto, só nos interessa a conversar de um caractere para sua forma numérica.
 
A forma mais simples para tal tarefa seria escrever todos os caracteres possíveis e enumerá-los. Por exemplos, se fizermos "a" corresponder a 1, "b" poderia ser 2, "c" seria 3, e assim por diante. Haskell já possui um padrão de enumeração de caracteres definido, e seria tedioso buscar em sua tabela os valores numéricos sempre que precisarmos deles. Por conveniência, já temos duas funções que fazem este trabalho: <code>chr</code> (uma abreviação de ''char''), e <code>ord</code>.<ref group=nota>Não é exatemente assim que <code>chr</code> e <code>ord</code> funcionam, mas descrição é válida por enquanto.</ref> Vamos investigar os tipos de <code>chr</code> e <code>ord</code>:
 
<source lang=haskell>
Linha 146 ⟶ 149:
<code>xor</code> é a função "ou exclusivo", que avalia se apenas um dos argumentos for <code>True</code>. Se ambos ou nenhum forem verdadeiros, ela retorna <code>False</code>.
 
O método básico para descrever o tipo de uma função de mais de um argumento é simplesmente escrever os tipos de cada argumento, em linha, e em sequência (primeiro <code>p</code>, depois <code>q</code>, por exemplo) e, por último, adicionar o tipo da saída. Depois basta intercalá-los com <code>-></code>.<ref group=nota>Cobriremos mais sobre este assunto no capítulo sobre [[Haskell/Funções de alta ordem|funções de alta ordem]].</ref>
 
<ol>
Linha 266 ⟶ 269:
 
== Notas ==
<references group=nota/>
 
[[en:Haskell/Type basics]]