Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 将字符串列表中的第一个元素转换为整数_Haskell - Fatal编程技术网

Haskell 将字符串列表中的第一个元素转换为整数

Haskell 将字符串列表中的第一个元素转换为整数,haskell,Haskell,名单如下: 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' bloc

名单如下:

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
   |                            ^                ^

不能使用typehint转换值。Haskell有一个强大的类型系统,这意味着您只能使用函数来转换
整数中的
字符串

由于
Integer
是的一个实例,因此可以使用将字符串解析为
Integer

convert [x, "kg", "g"] = (read x :: Integer) *1000
convert[x,“kg”,“g”]=(读取x::Integer)*1000不能使用typehint转换值。Haskell有一个强大的类型系统,这意味着您只能使用函数来转换
整数中的
字符串

由于
Integer
是的一个实例,因此可以使用将字符串解析为
Integer

convert [x, "kg", "g"] = (read x :: Integer) *1000
convert[x,“kg”,“g”]=(读x::Integer)*1000谢谢你的回复我刚刚理解了read type类。不幸的是,in仍然给了我同样的错误。@AnasHesham:但是您使用的是
map convert l
,这没有任何意义,因为
l
是一个字符串列表,因此您可以调用
convert l
来获得结果。@AnasHesham:您也不需要为
read
定义签名
read
可从
Prelude
@AnasHesham获得:此外,如上所述,您不能使用
map
,因为它没有意义:
convert
需要字符串列表,而不是单个字符串,因为
l
是字符串列表,映射没有意义,您可以使用
r=convert l
(然后,
r
因此是一个
整数
我将映射放在一个列表上,该列表包含与示例中相同类型的数据。但是,是的,它在当前代码迭代中是多余的。感谢您的回复,我刚刚理解了Read type类。不幸的是,在g中“我还是犯了同样的错误。@AnasHesham:但是您使用的是
map convert l
,这没有任何意义,因为
l
是一个字符串列表,因此您可以调用
convert l
来获得结果。@AnasHesham:您也不需要为
read
定义签名
read
可以从
序曲
获取Hesham:此外,正如前面所说,你不能使用
map
,因为它没有意义:
convert
需要一个字符串列表,而不是单个字符串,因为
l
是一个字符串列表,映射没有意义,你用
r=convert l
(然后,
r
因此是一个
整数
我把map放在一个列表上,因为我打算在列表中使用convert,该列表包含与示例中可用的相同类型的数据。但是,是的,它在代码的当前迭代中是冗余的。