我在 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
无法在<-
.
*我已经决定这是一个愚蠢的想法,但我想我还是会问这个问题。