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和<*>規定設立每次