monads

    6

    1答えて

    フリーモナドを使用して、ANDにマップされた>>=とANDにマップされたのPrologのようなAND/OR決定木を構築するためのEDSLを作成しようとしています。私はA AND (B OR C) AND (D OR E)のようなものを記述できるようにしたいが、私はこれを(A AND B AND D) OR (A AND B AND E) OR (A AND C AND D) OR (A AND C

    7

    4答えて

    Haskell Control.Arrowのドキュメントでは、Kleisliの矢印とモナドの関係について語っていますが、これをどのように使用するかはわかりません。私はIOモナドを含むそれ以外の矢印と合っていると思う関数を持っているので、Kleisliの矢印が役立つかもしれないと思う。 ディレクトリの元のファイル名と変更されたファイル名のペアを返す次の関数を実行します。 import System.

    6

    1答えて

    MonopはIOのためのHaskellをどのように使うのかを見ることができます。データフロー操作のための関数を作成する場合と同じように、Monadsを使って「計算をまとめて」使うことができます。 私が唯一grokkingしているのは、Monads for Control Flowを使用できることです。これで、コントロールフローがシーケンス、選択、反復について理解できるようになりました。今はmap、

    6

    3答えて

    なぜMonadTransが class MonadTrans t where lift :: (Monad m, Monad (t m)) => m a -> t m a -- ^^^^^^^^^^^ の代わりに、これは(Why aren't monad transformers constrained to yield monads?における提案とは異なり)のHaskel

    7

    1答えて

    ここはHaskellのExplanation of Monad lawsです。 F#でのモナドの法律はどのように説明できますか? バインド(M、リターン)M. 結合することと等価である((戻りX)、f)はF xと等価です。 bind(m、f)、g)は、bind(m、(fun x - > bind(f x、g)))と同等です。

    30

    3答えて

    一部のパーサーのApplicativeインタフェースは、Monadインタフェースよりも効率的に実装されていると聞きました。その理由は、Applicativeでは、有効な計算がすべて実行される前に、すべての「効果」を事前に知っているからです。モナドでは、効果は計算中の値に依存することがあります。したがって、この最適化は不可能です。 私はこれの良い例を見たいと思います。それは、非常に単純なパーサまたは

    6

    3答えて

    私はF#を学びたいと思っていますが、私に混乱を招くことの1つは、計算式(表記法?)とdesugaringです。 haskellでは、非常に単純なMonad typeclassと、バインドとリターンへのドゥーノーメイションの除外ルールがあります。キーワードの追加には魔法はありません。唯一のものは型が一致する必要があります。 F#には、ビルダーやキーワード、複雑さがたくさんあります。 あるコンセプトを

    7

    1答えて

    Scalazは、ステートフルな計算より優れた抽象化を提供します:STモナド。 STモナドは、機能的な形で副作用を計算することを可能にします。 ハスケルでは、このようなモナドを使用することが、いくつかの命令的アルゴリズムを効率的に実装する唯一の方法だと思います。 しかし、Scalaでは、必要に応じて簡単に変更可能なデータ構造を使用できます。 私が知ったのは、Scalazの機能概念には計算上のオーバー

    5

    1答えて

    シェイプレスHListからpointとbindの実装では、Monad(scalaz)を定義しようとしました。最初の問題は、HListの特性は型コンストラクタではありませんが、タイプlambdasで解くことができます。pointはシンプルですが、bindの正しい実装が見つかりませんでした。何らかの型の関数が必要ですねAux/Mapperトリック、形のない側はまだ私には暗いです。 HListは、単純な

    5

    1答えて

    私は簡単にそれを再作成することができ、単位数子/モナド data Unit a = Unit を探していますが、私はむしろ、この基本的な何かを複製していないと思います。それは、カテゴリーエクストラパッケージ(http://hackage.haskell.org/packages/archive/category-extras/0.1/doc/html/Control-Functor.html)