我正在尝试编写一个函数来接受字符串中4个空格分隔数字的字符串,将它们分开并转换为整数,并将它们放在4个单独的整数变量中。我知道我可以使用splitWs
将它们拆分成一个字符串数组,使用!!
来访问各个元素,然后使用以下内容转换为整数:
f :: [String] -> [Int]
f = map read
但我无法弄清楚如何将它们放在一起。
答案 0 :(得分:14)
使用words
函数按空格分割字符串。然后你可以map read
结果。
因此,一个简单的实现将是:
readNumbers :: String -> [Int]
readNumbers = map read . words
然后,如果您只需要四个数字,请使用模式匹配:
case readNumbers string of
[a,b,c,d] -> ...
_ -> error "Expected four numbers"
答案 1 :(得分:0)
Haskell中没有变量,Haskell字符串表示为列表。所以
尝试:
import Data.List.Utils
nums=map read $split " " "1 2 3 4" :: [Int]
您可以使用(!!):
访问单个元素> nums(!!)0
1
HTH Chris