Haskell/Casamento de padrões, if e let: diferenças entre revisões

m
sem resumo de edição
[edição não verificada][edição não verificada]
m (Marcada como "em tradução")
mSem resumo de edição
Por simplicidade, não vamos nos preocupar com o que aconteceria se o argumento fosse um número negativo, ou zero, por exemplo. Entretanto, numa aplicação real, deve-se sempre pensar nestes casos improváveis. Aqui simplesmente dissemos que o resultado é 0 para qualquer argumento que não seja maior que ou igual a 1 e menor que ou igual a 6.
 
Observe função que acabamos de escrever. Ela contem seis expressões ''if''aninhadas. Mesmo podendo copiar e colar texto, esta implementação ainda é propensa a erros, além de ser difícil de entender. Poderíamos escrever usando guardas, o que seria um pouco melhor, mas ainda seria necessário escrever todos os seis testes de igualdade. Fica como exercício.
 
{{Exercício|1=
Parece mágica, mas é apenas casamento de padrões com n-uplas (uma dupla, neste caso). Em <code>fst'</code>, se aplicarmos um argumento <code>(1,2)</code>, por exemplo, o primeiro elemento <code>1</code> seria associado a variável <code>x</code>, enquanto que <code>2</code> seria associado a <code>_</code> e descartado. Depois disso, pode-se fazer qualquer operação com <code>x</code> do lado direito.
 
{{ExercicioExercício|1=
Escreva uma função <code>snd'</code> que extraia o segundo elemento de uma dupla.}}
 
153

edições