Os números em Clojure incluem:
-6, 0, 1, 25, 976 e 500000.-2.4, 0.1, 3.14, 16.984025 e 1024.0.Dois tipos numéricos comuns são int e float. Um int é um número inteiro de 32 bits e um float é um número de vírgula flutuante de 64 bits.
A aritmética é feita com os operadores aritméticos habituais. Os números podem ser comparados com os operadores de comparação numérica habituais (>, <, <=, >=), o operador de igualdade (=) e o operador de desigualdade (not=).
Neste exercício, tens de executar lógica de forma condicional. Uma forma comum de o fazer em Clojure é usar cond:
(cond (= x 5) "Expression to evaluate when x equals 5"
(> x 7) "Expression to evaluate when x is greater than 7"
:else "Expression to evaluate in all other cases")
O operador == pode ser preferível ao = em alguns casos em que é preciso comparar números independentemente do tipo exato. Por exemplo,
(== 5.0 5) ;; true as both numbers are equal when type is ignored
(= 5.0 5) ;; false as the types of numbers are also taken into account here i.e. float is different from int
O guia do Clojure sobre igualdade, mais concretamente a secção sobre números, tem mais detalhes.
Neste exercício vais escrever código para analisar a produção de uma linha de montagem numa fábrica de automóveis. A velocidade da linha de montagem pode variar entre 0 (desligada) e 10 (máxima).
À velocidade mais baixa (1), são produzidos 221 automóveis por hora. A produção aumenta linearmente com a velocidade. Por isso, com a velocidade definida para 4, devem produzir-se 4 * 221 = 884 automóveis por hora. No entanto, velocidades mais altas aumentam a probabilidade de se produzirem automóveis com defeito, que depois têm de ser descartados. A tabela seguinte mostra como a velocidade influencia a taxa de sucesso:
0: taxa de sucesso de 0%.1 a 4: taxa de sucesso de 100%.5 a 8: taxa de sucesso de 90%.9: taxa de sucesso de 80%.10: taxa de sucesso de 77%.Tens duas tarefas.
Implementa a função production-rate para calcular a taxa de produção por hora da linha de montagem, tendo em conta a sua taxa de sucesso:
(production-rate 6)
;;=> 1193.4
Repara que o valor devolvido é um double.
Implementa a função working-items para calcular quantos automóveis funcionais são produzidos por minuto:
(working-items 6)
;;=> 19
Repara que o valor devolvido é um int.
Inscreve-te no Exercism para aprenderes e dominares Clojure com 12 conceitos105 exercícios, e mentoria humana real, tudo grátis.