如果你要用 Raspberry Pi 做点什么,多半会用到_电阻_。 在这个练习中,你需要了解关于电阻的两件事:
为了解决这个问题,制造商会在电阻上印上带颜色的色环,用来表示其阻值。 每个色环都有一个位置和一个数值。
电阻的前 2 个色环采用一套简单的编码方案:每种颜色对应一个数字。 例如,如果印上的是 brown 色环(值为 1),后面跟着 green 色环(值为 5),那么它对应的数字就是 15。
在这个练习中,你将编写一个实用的小程序,这样就不必记住各个色环的数值了。 这个程序接收颜色名称作为输入,并输出一个两位数,即使输入的颜色多于两种也没关系!
色环的颜色编码如下:
根据上面的例子: brown-green 应当返回 15,而 brown-green-violet 也应当返回 15,第三个颜色会被忽略。
你需要实现下面这个函数
value :: (Color, Color) -> Int
它只接受两种颜色,并给出该电阻阻值的数值部分。
加分项:属性测试
这个练习是编写属性测试的好机会。如果你以前没写过,这里有一些资源:
我们在测试文件里提供了一个 QuickCheck 属性测试示例。
可以测试的属性示例:
对于所有x不为Black的(x, y),都有value (x, y) >= 10
对value (x, y)调用show得到的字符串,等于对value (y, x)调用show得到的字符串再调用reverse的结果。
所有颜色的名称都唯一。(任意两种颜色,只要颜色不同,它们的名称也就不同。)