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 ==假?