16得票1回答
Haskell如何解决重叠实例?

请原谅我如果我使用了错误的术语,因为我在Haskell类型操作方面还是个新手... 我试图使用具有功能依赖的重叠实例来进行一些与HLists相关的类型级编程。 我的目标是尝试编写一个类型类 HNoNils l l',其中 HNoNils l l' 表示对于 l 作为列表类型(例如:Int:S...

16得票3回答
将固定长度向量函数应用于较长的固定长度向量的初始部分

我使用ghcs扩展程序GADTs, TypeOperators和DataKinds定义了固定长度向量: data Vec n a where T :: Vec VZero a (:.) :: a -> Vec n a -> Vec (VSucc n) a ...

14得票4回答
在Haskell中使用类型数字生成给定阶数的函数

假设我已经在Haskell类型中编码了自然数,并且有一种加减法的方式: 假设我已经在 Haskell 类型中编码了自然数,并且我有一种加法和减法的方法:data Zero data Succ n -- ... 我看过许多创建可变参数函数外观的代码,比如这个,它允许下面的写法:buildLi...

14得票1回答
Haskell - 为除一个特定类型外的所有类生成实例

有没有可能做类似这样的事情: class T a class U a instance U () instance ( NOT U a ) => T a 背景:我正在尝试编写一个函数,它接受 HLists 并删除某个类型的元素(在这里是单元类型)。 我觉得可能存在一些开放世界假设...

13得票1回答
解释在Scala类型级编程中使用的“LowPriorityImplicits”模式

当查看一些Scala库的源代码(例如shapeless),我经常会发现命名为LowPriorityImplicits的特质。 请问您能否解释这种模式吗?它解决了什么问题,这个模式是如何解决的呢?

13得票1回答
如果没有匹配的封闭类型族实例,是否有一种方法在编译时产生错误?

我有一个没有万能情况的封闭类型家族: {-# LANGUAGE TypeFamilies #-} type family Foo a where Foo Bool = Int Foo Int = Bool 有没有一种方法可以强制类型检查器拒绝下面的程序: data T...

11得票1回答
Scala路径依赖类型和类型级证明

我目前正在尝试在Scala中定义一个基于时钟的数据流语言模型。 一个数据流代表了某种类型T的无限数列,由一些时钟C控制(时钟表示数据流实际可用的时刻)。 可以通过根据另一个(布尔)数据流F'派生出的时钟C对数据流F进行采样来得到采样数据流SF:当布尔数据流F'为真时,SF包含了从F采样得到...

11得票2回答
从模块中导出类型操作符

如何导出类型运算符?考虑到它们可能与普通运算符冲突,如果可能的话必须有一种特殊语法。

11得票2回答
TypeClass特质中的emptyCoproduct和coproduct方法的目的是什么?(这是一个提问标题)

“emptyCoProduct” 和 “coproduct” 方法在 Shapeless 的 “TypeClass” 特质中的目的还不是很清楚。 什么情况下会使用 “TypeClass” 特质而不是 “ProductTypeClass”? 这两个方法的实现方式有哪些示例?

11得票1回答
Scala Shapeless代码用于欧拉计划#1

我是新手,正在尝试练习一些类型级编程知识。我选择了来自欧拉计划的第一个问题作为我的挑战。 我开始写常规的 Scala 代码:object ProjectEuler1 { def e1(limit: Int) = (1 until limit).foldLeft(0) { case...