【发布时间】:2019-04-23 06:35:02
【问题描述】:
正在研究一种将数字 n 转换为任何基数 b 的方法,但遇到了一些麻烦。
代码:
int2Base :: Int -> Int -> String
int2Base n b
|n == 0 = "0"
|otherwise = (mod n b) ++ int2Base (div n b) b
我的错误:
Couldn't match expected type ‘[Char]’ with actual type ‘Int’
In the second argument of ‘mod’, namely ‘b’
In the first argument of ‘(++)’, namely ‘(mod n b)’
这似乎是一个简单的错误,但即使我将其转换为 char,它仍然期望 '[Char]' 而不是 [Char]
【问题讨论】:
-
确实不能将 Int 连接到字符串。您需要将其转换为 Char,然后将其添加到前面(使用
(:))。一旦你这样做了,你会发现你正在反向构建你的结果! -
我应该如何将它转换为char?我试过 fromEnum 但这似乎不起作用
-
当你说“任何基础”时,你真的是指
b <= 10吗?
标签: haskell