typeclass

    7熱度

    1回答

    標題說明了一切。 foldl1和foldl'都推廣到Foldable,而foldl1'不是。這只是最近的疏忽嗎?或者它是一個設計選擇? 類型的foldl1'是 foldl1' :: (a -> a -> a) -> [a] -> a 我預期具有相同類型foldl1: foldl1 :: Foldable t => (a -> a -> a) -> t a -> a 我也看到foldl1'由

    0熱度

    1回答

    我有一個類型類: class Wrapper w where open :: w -> Map String Int close :: Map String Int -> w 它看起來並不非常有用,我卻用它強烈(不只是一個type代名詞)的Map String Int S語義不同品種區別: newtype FlapMap = Flap (Map String Int) n

    1熱度

    1回答

    我有以下問題:我定義了一個類的類,並且想要聲明這個類的元組也是實例。但我不知道如何讓GHC接受這個聲明。這裏一個很簡單的例子: class Test a where elm :: a 而且知道元組我想要做這樣的事情 instance (Test a, Test b) => Test (a,b) where elm = (elm, elm) :: (a,b) (其實,我想

    0熱度

    1回答

    這是一個問題的修改的只是問一些分鐘前組件的元組 - 但這種情況下我的問題...... 我有以下問題:我定義了一個類型類,並且想把這個類的元組聲明爲實例。但我不知道如何讓GHC接受這個聲明。這裏一個很簡單的例子: class Test x a where elm :: a 而且知道元組我想要做這樣的事情 instance (Test x a, Test x b) => Test x (

    2熱度

    1回答

    我得到相關類型的這種多參數的類型類實現一個奇怪的錯誤 trait Feedtype trait Atom extends Feedtype trait Rss2 extends Feedtype case object Atom extends Atom case object Rss2 extends Rss2 trait Encoding trait Xml extends En

    2熱度

    1回答

    關於如何使Haskell Wiki編譯成封閉類型系列示例的指針? GHC/AdvancedOverlap(方案三) 這裏是我試過的版本: {-# LANGUAGE DataKinds, FlexibleInstances, MultiParamTypeClasses, TypeFamilies, UndecidableInstances #-}

    1熱度

    1回答

    ...或具有編寫斯卡拉Haskell的程序員的事故,部分5 我在斯卡拉的結構如下: case class ResourceTree( resources: Map[String, ResourceTree] ) 而且,使用Cats,我想定義一個Semigroup它的實例。 object ResourceTreeInstances { implicit val semigro

    0熱度

    1回答

    我寫一個「簡單」的例子執行但我有一個很難搞清楚爲什麼這個不能編譯類型類: class Euclidean a where norm :: (Euclidean a, Floating b) => a -> b data Point a b = Point a b instance (Floating x, Floating y) => Euclidean (Point x y)

    1熱度

    3回答

    給出一個虛構的F型類: scala> trait F[A] {} defined trait F 和這個定義,它採用了context bound到要求輸入A有F一個類型的類實例: scala> def f[A : F](x: A) = ??? f: [A](x: A)(implicit evidence$1: F[A])Nothing 我所限定的Person和類型類實例: scala>

    1熱度

    1回答

    算術約束類型類的實例基本上,我希望能夠做這樣的事情: {-# LANGUAGE KindSignatures #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE FlexibleInstances #-} import GHC.TypeLits newtype Foo (a::Nat) (