GHCはデフォルトで次の関数でテールコール最適化を実行しますか?それについての奇妙なことは、IOアクションを再帰的に定義していることですが、TCOできない理由はわかりません。あなたのコードが consume store (x:xs) = putMVar store >> consume store xs
と等価であるので import Control.Concurrent.MVar
con
他 せずに、私はこのようになりますHaskellの中に何かをしたい場合はIOは、あるいは: main1 = do s <- getLine
if s == "foo" then putStr "You entered foo"
を一切elseをありませんので、明らかにこれは合法ではありません。私が考えた1つの選択肢: nop :: IO()
nop = sequence_ []