Haskell を学び始めたところ、次のプログラムを見つけました: http://www.haskell.org/haskellwiki/Roll_your_own_IRC_bot/Source。
入力して ghc --make 4.hs tutbot を使用してコンパイルすると、次のエラーが発生します。
4.hs:58:10:
Couldn't match expected type `() -> IO b0' with actual type `IO ()'
In the return type of a call of `putStrLn'
Probable cause: `putStrLn' is applied to too many arguments
In the second argument of `bracket', namely `(putStrLn "done.")'
In the expression:
bracket
(printf "Connecting to %s ... " server >> hFlush stdout)
(putStrLn "done.")
a
これはコードです:(私は埋め込まれたタブをチェックし、すべてが同じcomlumnにあることを確認しました):
--
-- Connect to the server and return the initial bot state
--
connect :: IO bot
connect = notify $ do
t <- getClockTime
h <- connectTo server (PortNumber (fromIntegral port))
hSetBuffering h NoBuffering
return (Bot h t)
where
notify a = bracket
(printf "Connecting to %s ... " server >> hFlush stdout)
(putStrLn "done.")
a
--
私には問題が見えず、他の誰も問題を抱えていないようです。