问题标签 [type-variables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - 约束中的模棱两可的类型变量'blah'......如何解决?
我正在尝试在 Haskell 中编写一个简单的光线追踪器。我想定义一个表示各种可用表面的类型类,并使用一个函数来确定光线与它们相交的位置:
然而,这给了我错误:
(实际的代码更复杂,但我试图将它提炼成更简单的东西,同时保持我想要实现的要点)。
我该如何解决?或者,鉴于我来自标准的 OO 背景,我从根本上做错了什么?
haskell - 在 Haskell 中使用词法范围的类型变量解析错误
当我向 GHC 提交代码时
我收到以下错误:
你能帮我吗?
埃里克·麦考利
haskell - Free Pascal 是否有像 Haskell 这样的类型变量?
Haskell 允许您定义像三次这样的函数,它接受一个类型的元素a
并返回重复三次的元素列表,对于任何数据类型a
。
Free Pascal 是否允许类型变量?如果没有,在 Free Pascal 中是否有另一种方法可以做到这一点?
haskell - GHCi 如何为类型变量选择名称?
使用交互式 GHC 解释器时,可以询问表达式的推断类型:
似乎它从签名中获取类型变量的名称,因为map
它被定义为
在前奏曲中。这很有意义!我的问题是:如果没有给出签名,如何选择类型变量名称?
一个例子是
它在哪里选择名称b
和b1
. 很明显,必须进行重命名,但只需以a
, b
, ... 开头就可以了
相反,我发现它更具可读性。
haskell - Haskell:实现“随机”(又名歧义类型变量)
我正在阅读 LYAH,在第 9 章中,我发现了一个奇怪的问题。作者提供了一个实现“randoms”功能的例子:
好吧,这编译得很好。但是,如果我将第二行更改为:
此文件在加载时报告错误:
如果我将此行更改为:
然后这会很好,并且正如预期的那样,这将返回所有相同元素的列表。
我不解:米兰的版本和我的版本有什么不同?
感谢您的任何想法!
haskell - ScopedTypeVariables 无法使用嵌套的 where 子句?
这是一个非常人为的例子,但无论如何......这个类型检查:
和作品
GHCi> let foo0 = foo (Bar id) (\n -> [n, n*2])
GHCi> map (runFoo $ runBar foo0 4) [1..10]
[False,False,False,True,False,假,假,真,假,假]
但是如果我将明显的类型签名添加到本地函数judge
中,
它失败了
等等。在 Haskell 98 中并不令人惊讶,但我认为ScopedTypeVariables
应该允许编写这样的签名,但显然它没有。这是否有特定原因,是否有意使其不适用于嵌套where
的 s,如果这出现在可比较的实际问题中,有什么解决方法?
java - 通配符和类型变量有什么区别?
考虑以下 Employee 类和一个名为 Manager 的子类-
在另一个类中,我定义了两个函数如下 -
我从 displayInfo() 和 displayInfo2() 得到相同的输出。
那么,考虑到这个例子,通配符和类型变量有什么区别呢?
haskell - Haskell:a -> a 类型函数的示例,除了标识
我刚刚开始玩一点Haskell......我想写一个相同类型的身份函数。显然,不等同于它。那会是这样的,
myfunction :: a -> a
我想不出一个参数和返回类型相同并且几乎可以是任何东西的例子(这排除了使用 Haskell 的 Typeclasses 的可能性)。
haskell - printf 和不明确类型变量的问题
我有一个有点模棱两可的类型变量问题。我喜欢haskell,但这确实是我仍然无法处理的。问题很简单,涉及到 Text.Printf 中的 printf。由于问题非常普遍,我将仅在一些示例代码中:
当然 printf 是进口的。然后编译器在 Num 和 PrintfArg 之间给出了一个明显的、模棱两可的类型变量错误。我只是不知道在哪里适合正确的类型签名。
haskell - 什么是skolem?
哎呀!GHCI 在我的代码中发现了 Skolems!
这些是什么?他们对我的程序有什么要求?他们为什么要逃跑(忘恩负义的小家伙)?