monads

    1

    1答えて

    私は現在「自分で48時間以内にスキームを書く」と読んでいました。第2章では、シンボルを認識し、パーサーを呼び出すための関数 'readExpr'を定義するための単純なパーサー 'シンボル'私はいくつかのテストをしようとすると、 module Main where import System.Environment import Text.ParserCombinators.Parsec hi

    2

    1答えて

    私はこのようなData.Maybe.monadを使用する関数があります。 typeCheck ν (f · e) = typeCheck ν e >>= λ { (u , e′) → typeCheck ν f >>= λ { (u′ ▷ t , f′) → u !≡ₜ u′ >>= λ { refl → pure (, (f′ · e′)) };

    2

    1答えて

    私はちょっと遊んで、conduitを理解しようとしています。 runConduit $ yield "abc" .| mapMC id .| sinkList を実行すると["a", "b", "c"]を与えながら runConduit $ yield "abc" .| mapC id .| sinkList を実行すると、["abc"]を与えます。 なぜモナドバージョンでストリームが分割

    1

    1答えて

    私はスカラズを学んでいますが、今はIOモナドの点を理解しようとしています。私はIOモナドについてthis articleを読み、最も単純な例を自分で実行しようとしている: val io = println("test").pure[IO] println("before") io.unsafePerformIO() 予想通りはい、それは動作します。それは印刷する before test

    11

    1答えて

    Tardisモナドを使用して、トラバース可能なコンテナにバブルソートを実装しようとしています。 {-# LANGUAGE TupleSections #-} module Main where import Control.DeepSeq import Control.Monad.Tardis import Data.Bifunctor import Data.Traversable

    2

    1答えて

    素敵なモナティブな方法で一連の非同期プロセスを作成する方法に苦労しています。プロセスの各ステップが失敗し、Future[Either[String, T]]が取得されている可能性があります。 def firstStep(input: Int): Future[Either[String, Long]] = ??? def secondStep(input: Long): Future[Eithe

    1

    1答えて

    私はSchemeで実装されたthe article of Dan Friedman about monadic evaluationを数回読みましたが、State monadのサブチャプターの終わりからエクササイズに悩まされています。 この記事は非常にはっきりしていますが、最小限の理論で深い理解を得ていますが、この演習は実際にはあいまいです。私はいくつかの重要な面を欠場することが恐れており、これが

    0

    1答えて

    f = do putStrLn "1" putStrLn "2" main = f 私が理解している通りにfは(putStrLn "1")>>=(\_ -> (putStrLn "2"))になります。ラムダ(モナドの持ち上げ)を適用している間に印刷操作が完了しましたか?誰かがどの段階でどの部分が評価され実行されるかを私に説明することはできますか?

    2

    2答えて

    IO [[Char]]とIO()をバインドすることは可能ですが、MaybeをIOでバインドすることはできません。誰かがこのリラクゼーションがいかに悪いデザインにつながるかの例を挙げることはできますか?モナド自体ではなく、多形型のモナドの自由が許可されるのはなぜですか?

    2

    1答えて

    ここでは以下のコードのためのscasteです。まず、items.cgiは、次の形式で項目オブジェクトのリストを返します $ curl http://example.com/items.cgi [ ... { sn: "KXB1333", ownerId: 3, borrowerId: 0 }, { sn: "KCB1200", ownerId: 1, borrowe