Числа в Clojure бувають такими:
-6, 0, 1, 25, 976 і 500000.-2.4, 0.1, 3.14, 16.984025 і 1024.0.Два поширені числові типи - це int і float. int - 32-бітове ціле число, а float - 64-бітове число з плаваючою комою.
Арифметичні дії виконуються за допомогою стандартних арифметичних операторів. Числа можна порівнювати за допомогою стандартних операторів порівняння чисел (>, <, <=, >=), оператора рівності (=) і оператора нерівності (not=).
У цій вправі нам потрібно умовно виконувати логіку. У Clojure для цього часто використовують 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")
Оператор == може бути кращим за = у деяких випадках, коли числа потрібно порівнювати незалежно від їхнього точного типу. Наприклад,
(== 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
Посібник Clojure з рівності, а саме розділ Числа, містить докладнішу інформацію.
У цій вправі ми будемо писати код для аналізу виробництва на складальному конвеєрі автомобільного заводу. Швидкість конвеєра може бути від 0 (вимкнено) до 10 (максимум).
За найнижчої швидкості (1) щогодини виробляється 221 автомобіль. Виробництво зростає лінійно зі швидкістю. Тож за швидкості 4 має вироблятися 4 * 221 = 884 автомобілі на годину. Однак вища швидкість підвищує ймовірність появи бракованих автомобілів, які потім доводиться відкидати. У таблиці нижче показано, як швидкість впливає на частку успішних автомобілів:
0: 0% успішних.1 до 4: 100% успішних.5 до 8: 90% успішних.9: 80% успішних.10: 77% успішних.На нас чекають два завдання.
Реалізуйте функцію production-rate, щоб обчислити продуктивність конвеєра за годину з урахуванням частки успішних автомобілів:
(production-rate 6)
;;=> 1193.4
Зверніть увагу, що повернене значення має тип double.
Реалізуйте функцію working-items, щоб обчислити, скільки справних автомобілів виробляється за хвилину:
(working-items 6)
;;=> 19
Зверніть увагу, що повернене значення має тип int.
Зареєструйтеся на Exercism, щоб вивчати й опановувати Clojure, а також 12 концепцій105 вправ та справжнє наставництво від людей, і все це безкоштовно.