これが一般的な質問である場合は申し訳ありません。私はこの単純なIO()機能を持っています:
greeter :: IO()
greeter = do
putStr "What's your name? "
name <- getLine
putStrLn $ "Hi, " ++ name
ここで、実際に操作する必要がないように、を呼び出すgreeterと同時に を事前に入力するパラメーターを指定したいと考えています。getLine関数のようなものを想像します
IOwithinputs :: [String] -> IO() -> IO()
それなら私はするだろう
IOwithinputs ["Buddy"] greeter
IOこれにより、次のようなユーザー入力を必要としないアクションが生成されます。
What's your name?
Hi, Buddy
IO()元の関数を変更せずにこれを行いたいですgreeter。greeterまた、コマンドラインからの入力をコンパイルしてパイプしたくありません。Hoogleのようなものは見当たりませんIOwithinputs。(withArgs興味をそそるタイプと名前ですが、私が望むものではありません。)これを行う簡単な方法はありますか?それとも何らかの理由で不可能ですか?これがパイプの目的ですか?