monoids

    0熱度

    1回答

    我正在通過this paper閱讀,它說,猿人是幻影應用仿函數。 我試着在purescript中設置一個幻像類型,但我在Functor實例中得到一個類型錯誤。我的猜測是編譯器不知道a在Accy o a之後做了什麼映射。我將如何解決這個問題? newtype Accy o a = Accy { acc :: o } instance mapaccy :: (Monoid o) => Functo

    3熱度

    1回答

    我有一個函數,如下所示: def createBuilder(builder: InitialBuilder, name: Option[String], useCache: Boolean, timeout: Option[Long]): Builder = { val filters: List[Builder => Option[Builder]] = List( b =

    4熱度

    1回答

    今天我試圖減少函數列表通過monoid typeclass,但由此產生的函數期望它的參數是一個Monoid的實例。 GHCI告訴我,mconcat [id, id, id, id]的類型是Monoid a => a -> a。但我希望它是a -> a。 發生了什麼事?

    0熱度

    1回答

    我正在Scalaz中深入探索Monoid的實現。如果您在Monoid上定義附加操作,我碰到|+|運營商應該來開箱即用。該算子的定義在SemigroupSyntax。該班通過Semigroup獲得Monoid。 檢查這三個類之後,我有一個重要的問題 - 究竟是如何從SemigroupSyntax實現/** Wraps a value `self` and provides methods relat

    3熱度

    1回答

    我通過在斯卡拉的書,並在幺章函數式編程讀數的高Kinded類型,他們談論一個Monoid接口,看起來像這樣: trait Monoid[A] { def op(a1: A, a2: A): A def zero: A } 後來,他們定義特定的含半幺羣通過擴展這個接口實例。例如, val intMonoid = new Monoid[Int] { ... } val lis

    4熱度

    1回答

    給定具有固定點的任意數據結構,我們可以構造一個monoidal代數而無需手動指定所有情況嗎? 假設我們得到如下的數據類型Expr。使用庫,我們可以派生出一個基函數ExprF,它自動也有Functor,Foldable和Traversable實例。 {-# LANGUAGE DeriveFunctor, DeriveFoldable, DeriveTraversable #-} {-# LANGU

    1熱度

    1回答

    比方說,我有如下一個Monoid特點: trait Monoid[A] { def combine(a1: A, a2: A): A def identity: A } 現在,如果我想要寫這個的optionMonoid,我可以寫這樣的: val optionMonoid1 = new Monoid[Option[A]] { def combine(a1: Opt

    1熱度

    1回答

    函數A => A是幺半羣,identity爲empty,組成爲combine。不幸的是我沒有在cats庫中找到它。庫是否爲這些函數提供了一個monoid實例? A => M[A]怎麼樣,其中M是monad還是applicative?

    3熱度

    3回答

    我有以下數據類型: data Bull = Fools | Twoo deriving (Eq, Show) ,並使用含半幺羣來實現它: instance Monoid Bull where mempty = Fools mappend _ _ = Fools 正如你所看到的,mempty是身份功能的身份法律不成立: *Main> x = Twoo

    0熱度

    1回答

    我沒有找到關於MonoidAggregator的任何文檔。 這是什麼? 使用它的一個例子: MultiAggregator( ..., Aggregator.forall[T](_.use)).andThenPresent(...) ..., ) FORALL返回MonoidAggregator。 它對子級大致相同,設置準備返回零如果_USE ==假?