gpt4 book ai didi

haskell - 在 if 内执行 readLine

转载 作者:行者123 更新时间:2023-12-02 17:01:15 26 4
gpt4 key购买 nike

我正在 Haskell 中编写一个小型命令行实用程序,它应该接受带有可选命令行参数的命令 - 但如果该参数不存在,则应提示用户输入它*。例如:

$ my_prog add item_name
Adding... done

$ my_prog add
Enter item name: item_name
Adding... done

我最初的尝试看起来像这样:

add args = do
let id = if length args > 0
then head args
else input where
input <- readLine
-- Do stuff with id
putStrLn id

无法解析 <- .

*我后来认为这是一个愚蠢的想法,但我想我还是会问这个问题。

最佳答案

您正在尝试在 if 中使用 do 表示法,这将不起作用(而且,由于整个 if 位于 IO monad 之外)。

add args = do
id <- if length args > 0
then return $ head args
else readLine
putStrLn id

关于haskell - 在 if 内执行 readLine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15596248/

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