gpt4 book ai didi

haskell - 将命令行参数分配给变量

转载 作者:行者123 更新时间:2023-12-02 12:49:52 25 4
gpt4 key购买 nike

我需要将命令行参数字符转换为整数。我想将每个变量分配给一个变量并在我的函数中使用它们。我有以下内容:

import System.Environment   

getIntArg :: IO Int
getIntArg = fmap (read . head) getArgs

main = do
n <- getIntArg
print n

但是,它不会循环遍历所有参数,仅打印一个。另外,我会将每个变量分配给一个变量来使用吗?

我是 FP 新手。

最佳答案

如果您想将所有参数映射到您应该使用的Ints

getIntArgs :: IO [Int]
getIntArgs = fmap (map read) $ getArgs
<小时/>

或更短一点:

getIntArgs = map read <$> getArgs
<小时/>

相反。

这样你就可以做到

main = do
ns <- getIntArgs
print ns

然后使用 (!!) 获取您感兴趣的内容,或者如果您知道/期望至少有固定数量的 Int - 参数,则使用

(n1:n2:n3:_) <- getIntArgs

但是当然你应该首先检查长度 - 如果用户决定输入无法解析为 Ints

的内容,这也会失败<小时/>

因此,如果您不想重新发明轮子(如果您想学习或只需要快速解决方案,这可能没问题),您可能需要环顾四周并使用现有的包 - 例如 parseargs为您做这件事

关于haskell - 将命令行参数分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33339773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com