首页 文章
  • 3 votes
     answers
     views

    Scala中更高的键控类型[重复]

    这个问题在这里已有答案: What is a higher kinded type in Scala? 4个答案 我正在阅读Scala书中的函数式编程和Monoids章节,他们讨论了一个如下所示的Monoid接口: trait Monoid[A] { def op(a1: A, a2: A): A def zero: A } 稍后,他们通过扩展此接口来定义特定的Monoid实例 . 例如...
  • 12 votes
     answers
     views

    在Haskell中使用Maybe写一个最大Monoid

    我一直在经历Haskell monoids and their uses,这让我对幺半群的基本知识有了很好的理解 . 博客文章中介绍的一件事是Any monoid,它的用法如下: foldMap (Any . (== 1)) tree foldMap (All . (> 1)) [1,2,3] 在类似的情况下,我一直在尝试构建一个最大的幺半群,并提出以下内容: newtype Maximu...
  • 20 votes
     answers
     views

    为什么GHC不能为Monoid派生实例?

    GHC有一些语言标志,例如 DeriveFunctor , DeriveDataTypeable 等,它们可以为Haskell 98中允许的类型类之外的类型类生成派生实例的编译器 . 这对于像 Functor 这样的东西特别有意义,其中该类的定律规定了很明显,"natural"派生实例 . 为什么不为 Monoid ?对于具有单个数据构造函数的任何数据类型,似乎: data T...
  • 8 votes
     answers
     views

    foldable的foldl / foldr实现来自haskell中的二叉树?

    我正在通过Learn You a Haskell工作,而我正在讨论幺半群 . 在本节中,作者为树定义了foldMap方法,如下所示: instance F.Foldable Tree where foldMap f Empty = mempty foldMap f (Node x l r) = F.foldMap f l `mappend` ...
  • 646 votes
     answers
     views

    monad只是endofunctors类别中的幺半群,问题是什么?

    谁首先说了以下几点? monad只是endofunctors类别中的幺半群,问题是什么? 在一个不太重要的注意事项上,这是真的,如果是这样,你能给出一个解释(希望有一个可以被没有Haskell经验的人理解的那个)吗?

热门问题