3

IOその副作用として実行される関数を書くことはできますか? 例えば:

f :: Int -> Int
f n = putStr "text" >> return n*2

明らかに、完全に間違っていない限り、そのコードを書く方法はありませんが、少なくとも私がやろうとしていることを大まかに示すはずです。

4

1 に答える 1

11

あなたの機能はほぼ正しいです。副作用がある場合は、 type が必要ですIO。また、関数の適用は infix よりも厳密にバインドされます。これらの結果を修正すると、次のようになります。

f :: Int -> IO Int
f n = putStr "text" >> return (n*2)
于 2013-02-23T17:44:15.587 に答える