functor

    1热度

    1回答

    假设我有两种类型IntResult和StringResult: import cats._ import cats.data._ import cats.implicits._ scala> case class MyError(msg: String) defined class MyError scala> type Result[A] = Either[NonEmptyList

    1热度

    2回答

    我有一个仿函数对象: private static Func1<MyEvent, Observable<Data>> getDataOnEvent = new Func1<MyEvent, Observable<Data>>() { @Override public Observable<Data> call(MyEvent event) { return ApiF

    10热度

    1回答

    我们知道fmap是fmap :: Functor f => (a -> b) -> f a -> f b和sum是sum :: (Num a, Foldable t) => t a -> a,但下面的代码混淆了我。 > :t (fmap sum Just) (fmap sum Just) :: Num b => b -> b > fmap sum Just 3 3 为什么?

    0热度

    1回答

    使用猫,我有我的仿函数声明在包对象中。这工作得很好,除了futureFunctor,因为它需要一个隐含的ExecutionContext: package object util { implicit val futureFunctor: Functor[Future] = new Functor[Future] { //requires execution context:

    2热度

    2回答

    我刚刚意识到,函数具有Monad,Functor和Applicative的实例。 我最常做的,当我看到一些类型类实例我不明白,是写一些良好的输入表达式,看看它返回: 有人可以解释这些情况?你通常会听到关于List和Maybe的实例,这些实例现在对我来说很自然,但我不明白函数如何成为函子或Monad。 编辑: 好吧,这是一个有效的良好的输入表达式无法编译: fmap (+) (+) 1 (+1) 1

    0热度

    1回答

    在我的方式了解函子在Scala中,我碰到的功能函子与我周围有2个问题: 什么是在功能1仿函数类型参数此签名? implicit def Function1Functor[R]: Functor[({type l[a]=(R) => a})#l] = new Functor[({type l[a]=(R) => a})#l] { def fmap[A, B](r: R => A, f: A

    0热度

    2回答

    我有一堆函数,我想用作函子(即,使用类型而不是传递指向函数或任何其他类型的数据)。 在标准库或标准库+ Boost中有没有这样做的优雅/惯用/标准方式?莫名其妙地使用bind()? 或者我应该去的东西简单化(当然,那种简单化的),如: template<typename Function, Function& F, typename... Parameters> struct functor {

    1热度

    3回答

    我有一个包含基因排序的“基因型”。这些基因代表的并不重要,它们只是任意可以被称为“基因对象”的任意对象。 我需要这种突变基因,通过多种方法,但函数签名不是全部匹配。给定一个起始基因,创建一个新的基因,随机选择这些方法之一(或没有方法)进行突变。 例如,我有duplicate(gene),replace(gene, othergene),insert(gene, othergene),delete(

    1热度

    1回答

    我已阅读下列问题: Template functors vs functions C++ Functors - and their uses C++ function template partial specialization? 我明白C++ functors是良好的。但我不能推断,如果将执行以下操作会发生什么: template <typename T, unsigned int state

    2热度

    2回答

    的确如此: λ :i Applicative class Functor f => Applicative (f :: * -> *) where 同时: fmap f x = pure f <*> x - 由Applicative规律,我们可以从pure & <*>定义fmap。 我不明白为什么我要我要一个Applicative如果,真的,fmap可以自动在pure和<*>规定设立每次