Haskell中的类型类是支持ad hoc多态的语言机制。它们也存在于Scala,Coq和Isabelle中。
我尝试创建一种方法来剥离通用代表的元信息。 在创建类型类并为每个使用的 Rep 类型编写实例时,我遇到一个错误,指出 tw...
在 Rust 中,没有函数的类型,而是 Fn 特征,如下所示: 特征 Fn { fn 调用(self, args: A) -> R; } 那么函数的类型可以...
我正在尝试为函数类型实现类型类: {-# 语言灵活实例#-} 模块 匹配位置 导入令牌(令牌(..)) 类 匹配一个where 匹配 :: (匹配 b) => a -> [
MRE: 数据 MRE a = 废话 |呃一个| Umm (MRE a) (MRE a) 推导(Eq、Ord、Show) - 功能: foo :: Eq a => Char -> MRE a -> Bool -- 此处 Blah 的模式匹配 -- foo x (Eh e) | x == e =...
我想创建一个 Scala Id 类型类,这样我就可以声明 Foo 类型的 Id 采用 Long 值,例如 val fooId: Id[Foo] = Id(12L) // 编译时类型安全 val fooIdValue...
如何重载 haskell 中的某个运算符以在两侧采用不同的类型?
MRE: Foo 类在哪里 myCons :: 字符 -> s -> s myCons c xs = 实例 (Eq, Show) Foo 其中 (:) x y = x `myCons` y 错误:
在写如何在 Haskell 中进行子类型化时,我想到能够“使用”矛盾的证据(例如 True ~ False)来通知编译器有关 d...
我正在用 Scala 编写一个库,并决定使用 3.5.0 版本中引入的更新(实验)语法来处理类型类。所以我的代码有: 特质有边界: 自我类型
我想要一个接受参数并返回 Maybe 值的函数。如果参数的类型为 Maybe a,则实现应该是 id,如果参数是其他类型,则实现...
我想要一个接受参数并返回 Maybe 值的函数。如果参数的类型为 Maybe a,则实现应该是 id,如果参数是其他类型,则实现...
模式匹配是否可以检测某些内容是否是数字? 我想做以下事情: DoubleWrapper 类(值:双精度){ override def equals(o: Any): Boolean = o match { 卡斯...
两个 ReaderT 实例之间的 FunctionK 转换,为结果提供环境
我在服务中使用的效果类型定义如下: 类型 Traced[F[_], A] = ReaderT[F, TracingCtx, A] 类型 TracedErrorHandling[F[_], E, A] = Traced[EitherT[...
在阅读了 Haskell 中的类型类之后,我认为它们就像 Java 接口 您可以在类型类 (Num) 和任何 data/newtype(Foo) 声明的类型中定义一组方法,如果它想成为 p...
我正在尝试基于 CoqExtLib 中定义的有限映射来执行以下证明。但是,我遇到了一个问题,证明中显示的 RelDec 实例与实例不同......
`type <nameOfType> = Typeclass` 可以编译,但 `type <nameOfType> = (Typeclass, Typeclass)` 不能编译
我一直在阅读有关使用 haskell 类型重命名现有类型的内容,据我所知,该类型仅用于重命名具体类型,例如 Int、Integer、Char、D...
如何使用 Haskell 中的 Bounded 类型类来定义具有浮点范围的类型?
我预计以下代码会因违反 minBound 和 maxBound 而失败并出现类型错误。但是,正如您所看到的,它在没有标记错误的情况下完成了。 {-# OPTIONS_GHC -
在 Scala 中使用 `opaque type` 作为类型类
知道为什么这不能编译:https://scastie.scala-lang.org/iPmLyim4Q8aQ2aMNIfj2gA 不透明类型 Global[Value] = Unit 全局对象: def 派生[值]: 全局[值] = () 案例类 Yo() d...
如何编写一个可以在“obj”以及“Maybe obj”上调用“getField @k”的 Haskell 函数
我正在尝试编写 HTML 表单助手,我希望调用站点支持以下两种用例: {-# 语言AllowAmbigouslyTypes、DataKinds、OverloadedStrings #-} 导入数据.Proxy
我有一些类型类,例如: 特征示例类型类[A] // 想象这里有一个或多个方法 对象示例类型类: 给定ExampleTypeClass[Int] = new ExampleTypeClass{/* ... */} 给定
我正在对 haskell 方法执行以下调用 rollD6 :: (RandomGen g, Int a) => Int -> ([a], g) rollD6 次 = 滚动 Die6 次 (mkStdGen 6) rollD6InRange :: (RandomGen g, Int a) =>...