typeclass 相关问题

Haskell中的类型类是支持ad hoc多态的语言机制。它们也存在于Scala,Coq和Isabelle中。

双函子与箭头方法

Bifunctor 和 Arrow 方法之间有一些重叠: 类双函子 p 其中 首先 :: (a -> a') -> p a b -> p a' b 第二个 :: (b -> b') -> p a b -> p a b' 双图 ::...

回答 2 投票 0

Haskell 类型类中的乘积和求和类型并行

看起来 Applicative、Monad 和 Arrow 等类型类分别在 Alternative、MonadPlus 和 ArrowPlus 等类型类中具有某种等价的求和类型。例如,应用...

回答 1 投票 0

在 Haskell 中用(广义)箭头编写阶乘

我想在Haskell中用(->)箭头写一个阶乘。我不明白如何将递归转换为循环。我已经设法使用循环为我的阶乘设置一个固定点,但现在有一个公关...

回答 2 投票 0

Arrow 和 Monad,两个独立的视点来组成计算?

我在 Monad.Reader#13 中阅读了 Brent Yorgey 的“The Typeclassopedia”,发现“Functor hierachy”与“Category hierachy”是相互依赖的,如图 1 所示。 并且根据...

回答 1 投票 0

在生产代码中找到了假 IO 类型类的实例,但在测试中未找到

我有很多基于 IO 的操作,最简单的操作之一如下: -- 循环.hs 模块循环where 导入System.Console.ANSI(设置光标位置) 类型 Pos = (Int, Int) setCursorPosition' :: Pos -&...

回答 1 投票 0

精益中的关联类型

在 Rust 中我可以定义以下特征: 特征迭代器 { 输入项目; fn next(&mut self) -> 选项; } 特质可迭代 { 输入项目; 类型迭代器:迭代器<

回答 1 投票 0

为什么我的类型类不满足函数依赖?

我尝试创建一种方法来剥离通用代表的元信息。 在创建类型类并为每个使用的 Rep 类型编写实例时,我遇到一个错误,指出 tw...

回答 1 投票 0

你能使用类型类来模拟 Rust 的 Fn 特性吗?

在 Rust 中,没有函数的类型,而是 Fn 特征,如下所示: 特征 Fn { fn 调用(self, args: A) -> R; } 那么函数的类型可以...

回答 1 投票 0

尝试为函数实现类型类

我正在尝试为函数类型实现类型类: {-# 语言灵活实例#-} 模块 匹配位置 导入令牌(令牌(..)) 类 匹配一个where 匹配 :: (匹配 b) => a -> [

回答 1 投票 0

如何将一个字符等同于 Haskell 中的类型参数?

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 =...

回答 1 投票 0

如何让 scala 编译器从一种类型推断另一种类型?

我想创建一个 Scala Id 类型类,这样我就可以声明 Foo 类型的 Id 采用 Long 值,例如 val fooId: Id[Foo] = Id(12L) // 编译时类型安全 val fooIdValue...

回答 1 投票 0

如何重载 haskell 中的某个运算符以在两侧采用不同的类型?

MRE: Foo 类在哪里 myCons :: 字符 -> s -> s myCons c xs = 实例 (Eq, Show) Foo 其中 (:) x y = x `myCons` y 错误:

回答 1 投票 0

如何使用矛盾证据?

在写如何在 Haskell 中进行子类型化时,我想到能够“使用”矛盾的证据(例如 True ~ False)来通知编译器有关 d...

回答 2 投票 0

将新的 Scala 类型类语法与 GADT 类型相结合

我正在用 Scala 编写一个库,并决定使用 3.5.0 版本中引入的更新(实验)语法来处理类型类。所以我的代码有: 特质有边界: 自我类型

回答 1 投票 0

确保您的值包含在 Maybe 中的函数

我想要一个接受参数并返回 Maybe 值的函数。如果参数的类型为 Maybe a,则实现应该是 id,如果参数是其他类型,则实现...

回答 1 投票 0

Haskell - 确保您的值包含在 Maybe

我想要一个接受参数并返回 Maybe 值的函数。如果参数的类型为 Maybe a,则实现应该是 id,如果参数是其他类型,则实现...

回答 1 投票 0

Scala:检查对象是否为数字

模式匹配是否可以检测某些内容是否是数字? 我想做以下事情: DoubleWrapper 类(值:双精度){ override def equals(o: Any): Boolean = o match { 卡斯...

回答 3 投票 0

两个 ReaderT 实例之间的 FunctionK 转换,为结果提供环境

我在服务中使用的效果类型定义如下: 类型 Traced[F[_], A] = ReaderT[F, TracingCtx, A] 类型 TracedErrorHandling[F[_], E, A] = Traced[EitherT[...

回答 1 投票 0

类型类充当接口(??)

在阅读了 Haskell 中的类型类之后,我认为它们就像 Java 接口 您可以在类型类 (Num) 和任何 data/newtype(Foo) 声明的类型中定义一组方法,如果它想成为 p...

回答 1 投票 0

Coq Proof 中使用了错误的类型类实例

我正在尝试基于 CoqExtLib 中定义的有限映射来执行以下证明。但是,我遇到了一个问题,证明中显示的 RelDec 实例与实例不同......

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.