列表是:
l = ["1","kg","g"]
我找到了这个方法,但它不起作用:
map (convert) l
convert [x, "kg", "g"] = (read x :: Integer) *1000
我收到以下错误:
parse error on input `='
Perhaps you need a 'let' in a 'do' block?
e.g. 'let x = 5' instead of 'x = 5'
|
17 | convert [x, "kg", "g"] = (read x :: Integer) *1000
| ^ ^
最佳答案
您无法使用类型提示转换值。 Haskell 具有强类型系统,这意味着您只能使用函数将字符串
转换为整数
。
因为 Integer
是 Read
typeclass 的一个实例,您可以使用read :: Read a => String -> a
将字符串解析为Integer
:
convert [x, "kg", "g"] = (read x :: Integer) *1000
关于haskell - 将字符串列表中的第一个元素转换为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65692140/