これが一般的な質問である場合は申し訳ありません。私はこの単純な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
興味をそそるタイプと名前ですが、私が望むものではありません。)これを行う簡単な方法はありますか?それとも何らかの理由で不可能ですか?これがパイプの目的ですか?