學習軌道
/
Clojure
Clojure
/
練習
/
汽車,組裝!
汽車,組裝!

汽車,組裝!

學習練習

簡介

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%。

你有兩項任務。

1. 計算每小時的生產率

實作 production-rate 函式,計算裝配線每小時的生產率,並將成功率納入考量:

(production-rate 6)
;;=> 1193.4

注意,回傳的值是 double。

2. 計算每分鐘生產的正常品數量

實作 working-items 函式,計算每分鐘可生產多少能正常運作的車輛:

(working-items 6)
;;=> 19

注意,回傳的值是 int。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Clojure Exercism

準備好開始 汽車,組裝! 了嗎?

註冊 Exercism,透過 12 個概念105 個練習 和真人引導來學習並精通 Clojure,全部免費。