依赖类型是依赖于值的类型。很少有语言支持它们 - 例子包括Agda,ATS,Coq,Epigram,Scala(通过路径依赖类型,近似变体)和Idris,它们渴望生成系统级质量的本机代码。
我正在编写一些伪代码,并且想要指定具有与第一个 Int 参数相同的关联元数的函数类型 Combinator: F :: 整数 -> 列表 ->
我正在编写一些伪代码,并且想要指定具有与第一个 Int 参数相同的关联元数的函数类型 Combinator: F :: 整数 -> 列表 ->
以下段落出现在《精益定理证明 4》中关于量词和等式的章节的前面: 因此,构造微积分确定了依赖箭头类型...
如何在精益中证明a = b → a + 1 = b + 1?
我正在努力完成精益教程的第 4 章。 我希望能够证明简单的等式,例如 a = b → a + 1 = b + 1,而无需使用 calc 环境。在其他方面...
如何从命令行运行 Pie(来自 The Little Typer)?
我读《小打字机》已经有一段时间了,我现在想实际尝试一下 Pie,而不仅仅是阅读它。以下是我尝试在
我编写了一个玩具库,它使用依赖类型来表示货币及其类型签名中的货币: 数据货币 = CHF |欧元 |波兰语 |美元 派生库存(Bounded、Enum、Eq、Read、Show) d...
我有一个记录类型,在 Agda 中调用 if Foo。我可以通过生成字符串表示形式(显示 foo)并对结果字符串进行排序来对其进行排序。我有一个亲戚,请称呼它<=Foo, for comparing...
我很好奇是否存在类型名称本身不足以消除歧义的情况。 当使用类型名消歧符时,后面的限定 ID 必须是类型。 对于e...
在 Scala 3(点)或 Scala 2 中,如何使依赖类型具有传递性?
这是一个简单的例子: { // 函数中的依赖类型 def dep[B](a: 任意, bs: Seq[B]): Seq[(a.type, B)] = { val 结果:Seq[(a.type, B)] = bs.map { b => (a: a.type) ->...
我使用的是 M 型的通常共归纳定义,定义如下。 记录 M (S : 设置) (Q : S → 设置) : 设置在哪里 共感的 构造函数sup-M 场地 形状:S 位置 : Q 形状 → M ...
编辑:经过评论中的讨论,这是问题的技术部分。还有美学方面,如何巧妙地做到这一点。 如何创建依赖于参数的类,...
是否可以为内部类定义扩展方法?语法参考似乎表明可以在 DefParam 之前有一个UsingParamClause,这是有前途的,并且激励......
我正在 idris 中学习依赖对,但不明白如何使用它。例如,如果我过滤 Data.List,我会返回一个 Data.List,您可以对其进行求和或其他计算。 总和 $ f...
在 haskell 中,我可以使用函数 f 的类型签名指定该对必须以这种方式排序: {-# LANGUAGE 数据类型#-} {-# LANGUAGE GADTs #-} {-# LANGUAGE KindSignatures #-} {-# 语言
在带有 DOT 演算的 Scala 3 中,`this.type` 是路径依赖类型吗?它有什么特别之处?
本题来源于: Scala:抽象类型与泛型 在 Scala 3 中,依赖于路径的类型是一种类型/绑定,它将术语/对象与不同的编译时路径签名绑定在一起。作为资源...
考虑以下自然数的定义。 密封性状 Nat 最终案例对象 Z 扩展 Nat 最终案例类别[N <: Nat]() extends Nat And the following definition of vectors. sealed...
像 `Type.eq` / `Typing_equal.equal` 这样的平等证人有什么用?
type ('a, 'b) equal = ('a, 'b) t (source) 有什么用?我在 Coq 中使用过 refl,但还不需要像 OCaml 中那样的东西。 该类型在 Base 和即将发布的 OCaml 版本中定义
为什么我的 Rust 代码不能编译? pub struct BinaryFormatWithoutFieldUid<'a, T>(pub &'a T); pub struct BinaryFormatWithoutLength<'a, T>(pub &'a T); pub trait 序列化 {} 小鬼...
有一些Haskell模块化算术模块,用类型注释实现了类型安全模块化算术。是否可以在类型注解中传递一个变量?例如在...
我正在实验scala的一个库中提供的精炼类型功能:https:/github.comfthomasrefined下面的代码代表了一个简单的案例:import eu.timepit.refined.auto......。