monads

    2

    1答えて

    私はScalaでより機能的なコードを書く方法を学ぼうとしていますが、モナド構造から値を引き出すのではなく、マップ/フラットマップなどを使って値を操作するのは難しいです。これは単一のモナドで作業するときは簡単ですが、以下のように構造体を操作するためにこれをスケールするにはどうすればよいですか? たとえば、値をJsResultの内部に変換する慣習的な方法はありますか? Option[Future[Js

    0

    1答えて

    私のコードは次のようになります: 私は同じWriter Monadに書き込むためにtokenize関数の中でtellを使いたいと思います。これは可能ですか? tokenize :: T.Text -> T.Text -> [Token] tokenize t token | T.null t = addToken token [] | h == ' ' = addToken

    1

    1答えて

    の左側に労働組合を作成すると、タイプR1 => Either[L2, R2]の機能にEither[L1, R1]の値をバインドして宣言することができEither[L1 | L2, R2]ので、個々の関数の値を取得し、潜在的に自分のエラーや消費者を返す方法はありますこれらの関数のモナドパイプラインは、可能なすべてのエラーを型付きのない完全な方法できれいに処理できますか?私は徹底的なエラー処理を行うこ

    -1

    1答えて

    combinationIO :: Int -> [a] -> IO [[a]] combinationIO 0 _ = return [[]] combinationIO _ [] = return [] combinationIO n (x:xs) = do res <- (map (x:) (combinationIO (n-1) xs)) ++ (combinationIO n xs)

    1

    1答えて

    私は非常に似ている2つのモナドを持っています(実際には同じ名前ですが、完全に同一ではありません)。同じクラスタイプから派生しています。残念なことに、これらのモナドは異なるライブラリで定義され、お互いを知りません。関数AとしてLibraryAでMonadBを使用しようとすると、MonadAが期待していると誤解しています。おそらく一般的なクラスタイプをコンテキストとして代わりに使用して、2つのライブラ

    7

    1答えて

    Control.Monad.Morph含まのインスタンスのいずれもMonad m制約を使用しない、私の知る限り class MFunctor t where hoist :: Monad m => (forall a. m a -> n a) -> t m b -> t n b が含まれています。どのようにそうすることができますか?制約を使用する有効なインスタンスがありますか(それは

    2

    1答えて

    私は私の計算式にいくつかのカスタム演算子を定義したい でカスタム演算子を定義するために、それはmember this.Map (f, s) ...にmember this.Map f s ...を変更ところで type ZipSeq() = [<CustomOperation("<*>")>] member this.Apply f s = f |> Seq.zi

    0

    3答えて

    私はスカラ座でmyselfeを見つける一般的な状況は、以下の流れである。 ウィッヒを返すいくつかの小道具を読みますOption Option この利回りを返し将来の結果にいくつかの変換を行いますFuture に小道具を使用例えばOption[Future[Option[_]]]としてタイプより良い解決策は、以下のようなものを使用して、例えばそのようなFuture[Option[Option[_]]

    0

    1答えて

    私は「bmDupは関数ではありません」というエラーが出る理由を理解していませんが、情報がMaybeを取得する必要があることがわかります。 関数にラップすると、返される値は未定義です。 function Maybe() { Object.freeze(this); }; function Just (x) { this.toString = functi