x )" GHCi 提示: Couldn't read "\"(\\x -> x )\""a-6ren">
gpt4 book ai didi

haskell - 如何使用 GHCi :set args on quoted strings that include functions

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

我尝试使用 GHCi 和 :set argsmain,如下所示:

:set args "(\x -> x )"

GHCi 提示:

Couldn't read "\"(\\x -> x )\""as String

我不明白为什么不能将其视为字符串。我可以不用引号:

:set args (\x -> x )

但显然,这是不正确的,它将被解释为 4 个参数而不是一个,如以下 main 函数所示。

import System.Environment

main = do
args <- getArgs
putStrLn $ show $ length args

关于如何将其传递到 GHCi 的任何指示?(我可以从命令行将它传递给编译后的 ghc 代码。)

谢谢,

最佳答案

试试这个:

λ> :set args "(\\x -> x )"
λ> getArgs
["(\\x -> x )"]

请注意,ghci 参数解析与 shell 参数解析不同。如果您使用字符串,它将被解析为 Haskell 字符串。

另一种选择是自己使用 withArgs:

λ> withArgs ["(\\x -> x )"] (getArgs >>= mapM_ putStrLn)
(\x -> x )

关于haskell - 如何使用 GHCi :set args on quoted strings that include functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17799086/

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