HaskellのエラーモナドとIO Monadを組み合わせたいと思います。ここに私のコードからの抜粋です: type AskMonad = ErrorT String IO
askSomething :: AskMonad Direction
askSomething = do
liftIO $ putStrLn "Choose an element from the list [
魚オペレーターに対して、モナドは連合性を満たす。次の式を意味(ラムダ式で)バインドのように見えるように変換 (h >=> g) >=> f = h >=> (g >=> f)
これ、 \a -> h a >>=(\b -> g b >>= \c -> f c) =
\a ->(h a >>= \b -> g b)>>= \c -> f c
これは単項構図を理解するための良い方法である (
リストモナドの次の宣言をコンパイル可能にするにはどうすればよいですか? module Main where
instance Monad m where
-- "return" constructs a one-item list.
return x = [x]
-- "bind" concatenates the lists obtained by applyi
私は、ハスケルにとって比較的新しく、Jeremy GibbonsとBruno C.によってThe Essence of the Iterator Patternに示されているように、KernighanとRitchieで実演されたUNIX wcプログラムをモナド構成で移植しようとしています。 S. Oliveira、それをコンパイルするのにいくつかの問題がありました。ここに私のコードだ: impor