トラック
/
Clojure
Clojure
/
演習
/
車を組み立てよう!
車を組み立てよう!

車を組み立てよう!

学習演習

はじめに

Clojureの数値には、次のようなものがあります。

  • 整数:小数点以下の桁がない数値(いわゆる整数)です。例は-6、0、1、25、976、500000です。
  • 浮動小数点数:小数点以下に0桁以上の桁がある数値です。例は-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

詳しくは、Equalityに関するClojureガイドの、特にNumbersのセクションで説明されています。

説明

この演習では、自動車工場の組み立てラインの生産を分析するコードを書きます。組み立てラインの速度は0(停止)から10(最大)まで設定できます。

最も低い速度(1)では、1時間に221台の車が生産されます。生産量は速度に比例して増加します。そのため、速度を4に設定すると、1時間に4 * 221 = 884台の車を生産することになります。ただし、速度が上がるほど不良品が作られる可能性が高くなり、それらは捨てなければなりません。次の表は、速度が成功率にどのように影響するかを示しています。

  • 0:成功率0%。
  • 1から4:成功率100%。
  • 5から8:成功率90%。
  • 9:成功率80%。
  • 10:成功率77%。

タスクは2つあります。

1. 1時間あたりの生産率を計算する

production-rate関数を実装して、成功率を考慮した組み立てラインの1時間あたりの生産率を計算します。

(production-rate 6)
;;=> 1193.4

戻り値はdoubleであることに注意してください。

2. 1分あたりに生産される正常な車の数を計算する

working-items関数を実装して、1分あたりに何台の正常な車が生産されるかを計算します。

(working-items 6)
;;=> 19

戻り値はintであることに注意してください。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Clojure Exercism

車を組み立てよう!を始める準備はできましたか?

Exercismに登録すれば、12個のコンセプト105個の演習、そして本物の人間によるメンタリングとともに、Clojureを学んでマスターできます。すべて無料です。