【发布时间】:2016-11-16 03:29:11
【问题描述】:
我在 Haskell 作业中要做的一件事是编写一个将八进制数转换为二进制数的函数,事情是特别要求输入必须是字符串。
我想我会这样写:
okt2bin:: String -> String
okt2bin n
|n == "0" = "000"
|n == "1" = "001"
|n == "2" = "010"
|n == "3" = "011"
|n == "4" = "100"
|n == "5" = "101"
|n == "6" = "110"
|n == "7" = "111"
问题是,我无法让它适用于多位数字。有人可以帮忙吗?
【问题讨论】:
-
我认为你的函数应该是
Char -> String类型。然后将其用作map中的基本函数。 -
okts2bins = concatMap (okt2bin.show) -
另一个建议,使用模式匹配而不是守卫,还有一件事,你没有考虑负输入。(可能不需要在练习中,但为什么不超越:))跨度>
标签: haskell functional-programming