轨道
/
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,全部免费。