类型系统通过提供用于操作这些约束的语法方法,对可编写的程序施加约束。
协方差类型的泛型函数输出是错误的,这是类型系统错误还是预期的?
考虑 性状 水果 { 值名称:字符串 } case class Apple(覆盖 val 名称:String)扩展 Fruit case class Banana(覆盖 val name: String) 扩展 Fruit 当我定义一个函数来收集...
如何创建一个 Trait 来表示除 std::Any 之外的所有数据类型
我想要什么 表示所有数据类型的 Trait,例如 String、Vec、i32 等 包括其他一些复杂的数据类型,比如Box>和一些我定制的
为什么 Scala 编译器在 2.10 中对 self 类型变得更加严格? [已关闭]
我有以下代码: 性状 TFn1B { 输入 输入输出 输入应用[T <: In] <: Out } trait TFn1[I, O] extends TFn1B { type In = I type Out = O } trait >&...
考虑抽象类 Fruit: 性状 水果 case 对象 Apple 扩展了 Fruit 案例对象 Orange 扩展 Fruit 我想为具有通用输入和输出的水果实现处理器服务: 特质
Haskell 的类型系统是 Curry 风格还是 Church 风格?
Haskell 的类型系统是 Curry 风格还是 Church 风格? 在研究 Haskell 的类型系统时,我遇到了 Curry 风格和 Church 风格这两个术语。我想了解之间的区别
我想了解这部分。 我正在阅读在通用上下文中查找动态类型,其中包含以下代码片段: func printGenericInfo(_ 值: T) { 让 t = 类型(值:值)
我正在尝试用 TypeScript 编写类似于 Array.prototype.flat() 的东西。 但是,我希望能够展平任意深度的嵌套列表;而且我想限制所有非数组元素...
我正在尝试用 TypeScript 编写类似于 Array.prototype.flat() 的东西。 但是,我希望能够展平任意深度的嵌套列表;而且我想限制所有非数组元素...
我正在编写一个 ModulePass,我需要分析给定模块中定义的每个结构。 我知道带有名称的已识别结构已插入 ValueSymbolTable 中,但我如何迭代...
我在想,C++或者Java有没有办法做这样的事情 接口 IF1{ .... }; 接口 IF2{ .... }; 函数 f(对象 o :实现 IF1、IF2){ ... } 意思是类型...
我目前正在尝试更好地了解 GitHub 上的 Apple 开源 Swift 编译器。使用 Swift 几年后,我已经习惯了定义重要类型的哲学
在 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) ->...
我正在尝试创建一个特征,该特征将提供在子类中添加的抽象类型的名称: 特质 T { T型 def myClassOf[T:ClassTag] = 隐式[ClassTag[T]].runtimeClass ...
Typescript 相当于 C# 的 NotNullWhen
在 C# 中使用不可为 null 的引用类型时,您可以在方法返回 false 时注释输入参数以表明它不为 null: // 来自字符串 bool IsNullOrEmpty([NotNullWhen(false)] s...
我想做这样的事情: def iDontLikeStrings(arg: Not[String]) = {....} 基本上,这应该编译: 我不喜欢字符串(23) iDontLikeStrings(真) 这不应该编译:
在直觉类型理论中,系统 LambdaP2 是否总是蕴含 CoC?
考虑 lambda 立方体: https://en.wikipedia.org/wiki/Lambda_cube 支持类型多态性和依赖类型的类型系统: 依赖类型/类型取决于术语:∀ (a: A), B t...
我需要一个泛型类来“扩展”方法中的泛型: 类 Foo { 构造函数(公共 t:T){} 做(f:(b:B)=>无效){ f(这个.t); // 错误...
我阅读了https://en.wikipedia.org/wiki/Lambda_cube#Formal_definition,并对CiC和lambda多维数据集之间的关系感到困惑。据我了解,CiC扩展了CoC,后者是lambda的一个角落...
我想拥有一个与每种联合类型的单一类型都匹配的类型,但与那些单一类型的任何联合都不匹配
假设我定义了以下类型:type A = {a:number};类型B = {a:string};类型C = {a:boolean};输入All = A | B | C;现在,我要定义通用类型S(不使用任何类型A,...
为什么在TypeScript中将接口中可能的数字值转换为类实现中的不可能的数字值?
今天,我遇到了意外的TypeScript编译器行为。我想知道这是错误还是功能。也许这将是最后一个,但是我想知道其背后的理由。如果我...