Haskell/Variáveis e funções: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Albmont (discussão | contribs)
m Resumo e tradução da versão em inglês
 
Albmont (discussão | contribs)
m →‎Tipos: chupando tabela da wikipedia
Linha 29:
Prelude> let z = 10 :: Double
</pre>
 
Os tipos básicos da linguagem incluem:
 
{| class="wikitable" style="font-size: 85%; width: 100%"
|-
! Tipo de dado !! Descrição !! Classes !! Exemplo da sintaxe
|-
| <code>Bool</code> || [[Enumeração]] de valores [[booleano]]s, que permitem certas operações lógicas, como [[conjunção lógica|conjunção]] (<code>&&</code>), [[disjunção lógica|disjunção]] (<code>&#124;&#124;</code>) e negação (<code>not</code>). || Read, Show, Eq, Ord, Enum, Bounded || <code>True</code><br /><code>False</code>
|-
| <code>Char</code> || Enumeração de caracteres [[16-bit]], [[Unicode]]. A faixa dos primeiro 128 caracteres é idêntica ao [[ASCII]]. || Read, Show, Eq, Ord, Enum, and Bounded || <code>'a'</code>
|-
| <code>Double</code> || [[Ponto flutuante]] com maior intervalo e precisão que <code>Float</code> || RealFloat ||
|-
| <code>Either</code> || || Eq, Ord, Read, Show ||
|-
| <code>Float</code> || [[Ponto flutuante]] || RealFloat || <code>6553.612</code><br />321.6e-3
|-
| <code>IO</code> || Tipo abstrato para operações de [[E/S]], como <code>putStr</code>, <code>print</code>, <code>getChar</code>, <code>getLine</code> e <code>readIO</code>. || Monad, Functor ||
|-
| <code>IOError</code> || Tipo abstrato para erros nas operações de E/S com <code>IO</code>. || Show, Eq ||
|-
| <code>Int</code> || [[Inteiro (tipo de dado)|Inteiro]] que cobre, pelo menos, o intervalo de valores [-2^29, 2^29 - 1]. || Integral || <code>123</code>
|-
| <code>Integer</code> || [[Inteiro (tipo de dado)|Inteiro]] de [[Bigint|precisão ilimitada]], com as mesmas funções e operadores de <code>Int</code> || Integral || <code>123</code>
|-
| <code>Maybe</code> || Lida com valores opcionais ou ilegais sem terminar o programa e sem usar o <code>IOError</code> de <code>IO</code>. || Eq, Ord, Read, Show ||
|-
| <code>Ordering</code> || || Eq, Ord, Bounded, Enum, Read, Show ||
|-
| <code>String</code> || [[Cadeia de caracteres]], representada sob forma de lista de <code>Char</code>. A sintaxe tanto pode ser de lista quanto a abreviação, entre [[aspas]]. || || <code>"Texto"</code><br /><code>['T','e','x','t','o']</code>
|-
| Tuplas || Tipo de dado algébrico de definição de registros heterogêneos, [[tupla]]s. A quantidade máxima de elementos depende da implementação, mas a quantidade mínima de quinze elementos é sempre garantida.<ref>The Haskell 98 Report, s. 6.1.4</ref> || Eq, Ord, Bounded, Read, Show || <code>('A',11,True)</code>
|-
| Listas || Tipo de dado algébrico de definição de registros homogêneos [[lista]]s. Entre os operadores disponíveis encontra-se <code>!!</code>, que retorna o n-ésimo elemento da lista, e <code>++</code>, que [[concatenação|concatena]] duas listas distintas de mesmo tipo. Relacionado a concatenação, há o operador <code>:</code>, que adiciona um elemento no topo de uma lista. || Eq, Ord || <code>[1,2,3,4]</code><br /><code>[1..4]</code><br /><code>(1:(2:(3:(4:[]))))</code>
|}
 
== Funções ==