私は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
での解析に失敗します<-
。
*それ以来、これはばかげた考えだと判断しましたが、とにかく質問したいと思いました。