我正在尝试编写一个函数来接受一个由字符串中的4个空格分隔的数字组成的字符串,将它们分开并转换为整数,然后将它们放在4个单独的整数变量中.我知道我可以用它splitWs来分割成一个字符串数组,用于!!访问各个元素,以及类似下面的内容转换为整数:
f :: [String] -> [Int]
f = map read
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚如何把它们放在一起.
Joe*_*ams 14
使用该words函数按空格分割字符串.然后你可以map read结果.
因此,一个简单的实现将是:
readNumbers :: String -> [Int]
readNumbers = map read . words
Run Code Online (Sandbox Code Playgroud)
然后,如果您只需要四个数字,请使用模式匹配:
case readNumbers string of
[a,b,c,d] -> ...
_ -> error "Expected four numbers"
Run Code Online (Sandbox Code Playgroud)
Haskell 中没有变量,Haskell 中的字符串表示为列表。所以
尝试:
import Data.List.Utils
nums=map read $split " " "1 2 3 4" :: [Int]
Run Code Online (Sandbox Code Playgroud)
您可以使用 (!!) 访问单个元素:
> nums(!!)0
1
Run Code Online (Sandbox Code Playgroud)
克里斯·HTH
| 归档时间: |
|
| 查看次数: |
2720 次 |
| 最近记录: |