typeclass

    2熱度

    1回答

    我有一個要求在runTime中攔截dateTime,LocalDate和Option的toString。 @implicitNotFound("No member of type class ReportString in scope for ${T}") trait ReportStringTransformer[T] { def toReportString(e: T): Stri

    5熱度

    2回答

    (斯卡拉2.11.8) 考慮下面的代碼: object ScalaTest extends App { class Wrapper { import Wrapper._ def init(): Unit = { // "could not find implicit value for parameter tc: ScalaTest.Wrapper.TC

    2熱度

    3回答

    我不確定如何正確地使用這個詞,如果有人對它有很好的名稱,請讓我知道。 我想寫一個叫做Matchable的類型類。這個想法是我有幾種不同類型的正則表達式(RegExp a,ComplexRegex a)應該能夠匹配輸入。 所以,我想這一點: class Matchable a where -- regex, input, success match :: a -> b -> Bo

    3熱度

    1回答

    以下example1是標準語法(如文檔所述),其中Eq a作爲約束條件。在example2中,我直接指定Eq a作爲參數的類型,編譯器接受它。但是我不清楚我可以指定哪種類型的值。對於特定類型a,例如Nat,我認爲以某種方式指定Eq Nat的實現是有意義的,或者是默認實現,或者是某個其他指定的實現。 %default total example1: Eq a => (x : a) -> (y :

    0熱度

    1回答

    我有一個在代數類型層次結構中設置類型的問題。 我有以下特點: trait Field[F]{...} trait VectorSpace3[V,F] extends Field[F]{...} 知道我要的實現: trait DoubleIsField extends Field[Double]{ ... } trait DoubleTurple3IsVectorSpace3

    0熱度

    2回答

    所以,我創建了一個數據型方程的交替情況 data Expr a = Const a | Expr a :*: Expr a 我定義了一個實例Eq對這種數據類型 instance (Eq m) => Eq (Expr m) where Const a == Const b = a == b (a :*: b) == (c :*: d) = ((a == c) &&

    0熱度

    1回答

    我覺得這應該很容易,但我堅持了很長一段時間。 haskell有可能爲某些數據類型的列表創建一個類型的實例嗎? 我想實現的是以下內容。 class Rename a where findSub :: a -> a -- A 'normal' instance would look like this instance Rename Atom where findSub ..

    1熱度

    1回答

    最初由3個類型類型設計的軟件已經發展到使用大量的類型類。讓我們以這個例子: 你有Service[A,B] 你有TypeClass1[A] 你有TypeClass2[B] 你有TypeClass3[A,B,C] 你有一個TypeClass4[A] 你有TypeClass5[B] 您有TypeClass6[C] 你有TypeClass7[C] 你有TypeClass8[B] 我們有這是完全不相交的A,

    2熱度

    1回答

    我定義了一個簡單的列表類型: data MyList a = End |Entry a (MyList a) 而不是deriving (Show)我實現明確自己所有MyList a其中a是Show一個實例。 instance Show a => Show (MyList a) where show End = "" show (Entry a l) = (

    0熱度

    1回答

    我已經看到了ad包,我明白它是如何通過提供class Floating的不同實例,然後實施衍生物規則來自動區分的。 但在例如 Prelude Debug.SimpleReflect Numeric.AD> diff atanh x recip (1 - x * x) * 1 我們可以看到,它可以代表功能爲AST S和顯示他們與變量名的字符串。 我不知道他們是怎麼做的,因爲當我寫: f ::