type-inference相关内容

使用INFER和TYPEOF在打印脚本中创建工厂

主要目标: 我正在努力学习(并理解,而不仅仅是复制和粘贴)如何在TypeScrip中创建一个Factory,但我对类型和类型推断有几点困惑。我想 使类能够创建ICLonable的多个实例(&Q;MyCloner&Q;;)例如,如果我有一个卡车类和一个摩托车类,这两个类都实现了ICLonable。 我希望能够做到以下几点: const vehicleCloner = new MyClon ..
发布时间:2022-05-23 16:03:50 其他开发

阻止Pandas由于在另一列中插入而将int转换为Float

我有一个包含两列的DataFrame:一列int和一列str。 我知道如果我将NaN插入int列,Pandas会将所有int转换为float,因为int没有NaN值。 但是,当我将None插入str列时,Pandas也会将我的所有int转换为float。这对我来说没有意义-为什么我在第2列中输入的值会影响第1列? 这里有一个简单的工作示例): import pandas as ..
发布时间:2022-02-23 21:18:38 Python

如何轻松应对 Haskell 上的类型系统?

Haskell 的类型系统功能强大,因其数学严谨性和逻辑合理性而广受喜爱,另一方面,像下面这样幼稚的东西让我想知道为什么它不能按直觉预期工作? 例如为什么 Int 不能在 x3 上转换为 Num 但 f1 接受 Int反对签名Num? 前奏曲>让 x1 = 1前奏>:t x1x1 :: Num a =>一个前奏>让 x2 = 1 :: Int前奏>:t x2x2 :: 整数前奏>让 x3 ..
发布时间:2022-01-24 16:27:47 其他开发

参数多态性 vs Ad-hoc 多态性

我想了解参数多态性(例如 Java/Scala/C++ 语言中泛型类/函数的多态性)与 Haskell 类型系统中的“临时"多态性之间的主要区别.我熟悉第一种语言,但我从未使用过 Haskell. 更准确地说: 类型推断算法如何?Java 中的类型推断与 Haskell 中的类型推断有何不同? 请给我一个例子,说明可以用 Java/Scala 编写但不能用 Haskell 编写的情况 ..
发布时间:2022-01-24 16:10:39 Java开发

Scala:如何定义“通用";函数参数?

我现在正在尝试学习 Scala,在 Haskell 方面有一点经验.对我来说很奇怪的一件事是 Scala 中的所有函数参数 必须 使用类型进行注释——这是 Haskell 不需要的.为什么是这样?举个更具体的例子:一个 add 函数是这样写的: def add(x:Double, y:Double) = x + y 但是,这只适用于双精度数(嗯,整数也适用,因为隐式类型转换).但是,如果您想定 ..
发布时间:2022-01-24 15:56:33 其他开发

线程和委托——我不完全理解它们的关系

我写的代码有点像这样: Thread t = new Thread(() => createSomething(dt, start, finish) );t.Start(); 而且它有效(有时感觉就像有多个线程). 但我没有使用任何委托. 没有代表的踏步是什么意思? 如果需要委托,请告诉我与委托的连接是什么以及如何建立的. 解决方案 多线程非常复杂.您正在剪切和粘贴代码, ..
发布时间:2022-01-18 12:21:27 C#/.NET

阻止 Pandas 将 int 转换为 float

我有一个 DataFrame.以下是两个相关的列:一个是 int 的列,另一个是 str 的列. 我知道如果我将 NaN 插入 int 列,Pandas 会将所有 int 转换为 float 因为 int 没有 NaN 值. 但是,当我将 None 插入 str 列时,Pandas 会将我的所有 int 转换为 float 为好.这对我来说没有意义 - 为什么我在第 2 列中输入的值会 ..
发布时间:2022-01-13 08:21:56 Python

F# 和鸭子类型

假设我在 F# 中定义了以下两种类型: type Dog = { DogName:string;年龄:int }类型猫 = { 猫名:字符串;年龄:int } 我期待以下方法对猫和狗都有效: 让 isOld x = x.Age >= 65 实际上,似乎发生的是 isOld 只接受猫: let dog = { DogName = "Jackie";年龄 = 4 }让 cat = { Cat ..
发布时间:2022-01-05 10:26:12 C#/.NET

如何在我自己的代码中生成类似于 FSI 的 F# 类型签名?

如果使用 F# Interactive Shell (FSI),则推断的表达式类型 (signature) 和它的值一起打印到控制台: val it : int * string * float = (42, "Hello F#", 42.0) 如何在自己的代码中模仿相同的行为,例如获取推断类型作为 F# 表达式的字符串? 我不需要动态计算任何 F# 表达式,这些表达式在编译时已知并且是 ..
发布时间:2022-01-05 10:22:32 其他开发

无限类型(又名递归类型)在 F# 中是不可能的吗?

我在 twitter 上与 Sadek Drobi 聊天时被提到 F# 似乎不支持无限类型.事实证明,在 C# 中,您可以按照以下方式做一些事情: delegate RecDelegateRecDelegate (T x); 但是,经过我们双方的一些实验后,我们确定 F# 中的相同似乎不可能隐式和显式. 显式: type 'a specialF = 'a->specialF 错误 F ..
发布时间:2022-01-05 10:16:48 其他开发

F# 帮助类型推断的方法?

在 Expert F# 2.0 中,作者是 Don Syme、Adam Granicz 和 Antonio Cisternino,pg.44 类型推断:使用 |> 运算符可以让类型信息从操作这些对象的函数的输入对象.F# 使用从类型推断收集的信息以解决某些语言构造,例如属性访问和方法重载.这依赖于在文本中从左到右传播的信息的一个程序.特别是,在位置右侧键入信息解析属性访问和重载时不考虑. ..
发布时间:2022-01-05 10:06:04 其他开发

为什么 F# 的类型推断不能处理这个问题?

我有一个FileInfo的序列,但我只关心它们的字符串名称,所以我想要一个字符串序列.起初我尝试过这样的事情: Seq.map (fun fi -> fi.Name) fis 但是出于某种原因,F# 的类型推断不足以允许这样做,并且让我明确地为“fi"指定了一个类型: Seq.map (fun (fi : FileInfo) -> fi.Name) fis 为什么需要这个注解?如果知道 f ..
发布时间:2022-01-05 09:46:03 其他开发

为什么 F# 的类型推断如此善变?

F# 编译器似乎以(相当)严格的从上到下、从左到右的方式执行类型推断.这意味着您必须做一些事情,例如在使用之前放置所有定义,文件编译的顺序很重要,并且您往往需要重新排列内容(通过 |> 或您拥有的东西)以避免显式类型注释. 让它更加灵活有多难,是否计划在未来版本的 F# 中使用?显然这是可以做到的,因为 Haskell(例如)没有这样的限制,具有同样强大的推理能力.导致这种情况的 F# 的设 ..
发布时间:2022-01-05 09:35:52 其他开发

了解 F# 值限制错误

我不明白 F# 中的值限制是如何工作的.我也阅读了 wiki 中的解释作为 MSDN 文档.我不明白的是: 为什么,例如,这会给我一个值限制错误(取自 this 问题): let toleq (e:float) a b = (abs ( a - b ) ) 但事实并非如此: let toleq e (a:float) b = (abs ( a - b ) ) 这是概括的好吧... ..
发布时间:2022-01-05 09:30:45 其他开发

强制 F# 对泛型和接口的类型推断保持松散

我们在这里变得毛茸茸的.我已经在数据的具体表示上测试了一堆树同步代码,现在我需要对其进行抽象,以便它可以与支持正确方法的任何源和目标一起运行.[实际上,这将是 Documentum、SQL 层次结构和文件系统等来源;使用 Solr 等目标和自定义 SQL 交叉引用存储.] 棘手的部分是,当我沿着 T 类型的树向下递归并同步到 U 类型的树时,在某些文件中我需要做一个第二种类型 V 的“子同步 ..
发布时间:2021-12-31 14:50:35 其他开发

TS4023:导出的变量 <x>有或正在使用名称 <y>来自外部模块但无法命名

我以前看过这个答案,但它们似乎没有涵盖这个特定的用例(或者它们不起作用/帮助) import {Route} from 'vue-router';出口 const detailRoute = {路径:'/detail/:id',组件:细节,道具:(路线:路线)=>({状态:route.query.state})}; detailRoute 使用我正在导入的 Route,但我猜作为命名导入 {R ..
发布时间:2021-12-29 14:12:11 其他开发