Haskell: отлов исключений из Data.Binary.Get - PullRequest
1 голос
/ 27 марта 2011

У меня следующий код:

import Data.Binary.Get
import qualified Data.ByteString.Lazy as L
import qualified Control.Exception as E

main = do
    let dat = L.pack [1,2,3,4]
    E.catch (E.evaluate $ runGet getWord32be dat) (\_ -> return 0) (return 1)
    putStrLn "Done"

Я получаю следующую ошибку:

Couldn't match expected type `m1 t -> m a'
       against inferred type `IO GHC.Word.Word32'
In a stmt of a 'do' expression:
    E.catch
      (E.evaluate $ runGet getWord32be dat) (\ _ -> return 0) (return 1)

Но я не могу понять, в чем заключается несоответствие.Может кто-нибудь просветить?

1 Ответ

1 голос
/ 27 марта 2011

Catch принимает только два аргумента. Вы даете это три.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...