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回答

    所以,我试图为我所做的类型编写一个类型类实例,并且遇到了问题。 data PlusMinus a = Plus a | Minus a | Zero deriving(Eq,Show) Essentialy我们已经得到了有3个不同的数据构造和Num的实例的类型应该表现不同基于这些不同的构造。 instance (Ord a, Eq a,Num a) => Num (PlusMinus a)

    2热度

    1回答

    这个问题是关于How to pattern match against a typeclass value?的后续。 我开始了一阶逻辑的宠物项目,并决定使用Haskell来达到此目的。我的第一个障碍是定义一个“一阶逻辑的公式”,因此数据类型: data Formula v = Belong v v -- x in y | Bot -- False

    2热度

    1回答

    我写了一个小程序,以找到一个数的因式分解。一切似乎除了main功能,抱怨不能够找到一个Show1实例进行编译。 {-# LANGUAGE DeriveFunctor #-} module FactorAnamorphism where import Data.Functor.Foldable import Data.List nextPrimeFactor :: Integer ->

    4热度

    3回答

    我读通过,并通过使用类型类工作我的方式,我对面的无形指南定义类型类的这种方式来: 所以这里去的例子: object CsvEncoder { // "Summoner" method def apply[A](implicit enc: CsvEncoder[A]): CsvEncoder[A] = enc // "Constructor" method

    1热度

    1回答

    继赫然启发question通过关于使用无形的ADT枚举@TravisBrown,我留下下面的代码片段: implicitly[EnumerableAdt[Foo]].values 我想一个方法中封装,这样我不用到每个调用后的.values(这对我来说似乎是一个更清洁的API,那样)。 但是我似乎无法做到正确。每当我尝试封装implicitly[EnumerableAdt[Foo]]时,我都会得

    2热度

    1回答

    我有一个类型Foo并希望把它的Show一个实例,这样我就可以在ghci中使用它: data Foo = Foo instance Show Foo where show Foo = "Foo" 然而,当我尝试使用它,我得到一个模棱两可发生错误: ghci> show Foo <interactive>:4:1: Ambiguous occurrence `show'