77得票4回答
什么是Skolems?

哎呀! GHCi 在我的代码中发现了 Skolems! ... Couldn't match type `k0' with `b' because type variable `b' would escape its scope This (rigid, skolem) type var...

45得票2回答
受限制的 TypeVar 和 Union 有什么区别?

如果我想要一个可以有多个可能类型的类型,Union似乎是我表示这种类型的方式: U = Union[int, str] U可以是int或str。 我注意到TypeVar允许可选的var-arg参数,似乎也能做同样的事情: T = TypeVar("T", int, str) 看...

24得票3回答
类型变量的无关默认继承错误:为什么会出现?

免责声明:这与此案件无关(虽然错误听起来一样):class inherits unrelated defaults for spliterator() from types java.util.Set and java.util.List 以下是原因: 考虑两个接口(在包“a”中) in...

23得票6回答
Haskell:除了identity之外,类型为a -> a的函数的示例

我刚开始接触 Haskell,想要编写一个类型与 identity 相同但并非等价于 identity 的函数。比如下面这个函数: myfunction :: a -> a 我无法想到一个参数类型和返回类型相同且可以是任何类型的示例(这排除了使用 Haskell 的 Typeclas...

12得票1回答
如何允许使用错误类型的变量?

package org.my.java; public class TestTypeVariable { static <T,A extends T> void typeVarType(T t, A a){ System.out.println(a.ge...

12得票1回答
GHCi如何选择类型变量的名称?

使用交互式GHC解释器时,可以询问表达式的推断类型: Prelude> :t map map :: (a -> b) -> [a] -> [b] 看起来 map 的类型变量的名称是从签名中获取的,因为它在这里被定义为 map :: (a -> b) -&g...

11得票1回答
在Haskell中,多个类型变量的顺序规则是什么?

例如,ParsecT在其定义中有多个类型变量。newtype ParsecT s u m a = ParsecT {unParser :: forall b . State s u -> (a -> State ...

10得票1回答
如何用foldMap表达类型对齐序列中的foldr?

我正在尝试使用类型对齐序列,特别是在尝试将它们折叠起来。可折叠的类型对齐序列看起来像这样:class FoldableTA fm where foldMapTA :: Category h => (forall b c . a b c -> h ...

9得票1回答
F#使用类型变量调用内联函数

我正在尝试定义更一般的(!)运算符,如下所示: let inline (!) (cell : ^a) = (^a : (member Value : ^b) cell) 所以它不仅适用于ref类型,还适用于任何具有Value成员的类型。 > !(ref 10) ;; va...

9得票1回答
Haskell 引用类型变量

我偶尔会遇到这个问题,最终想问一下是否有常见的解决方案或模式。 在嵌套上下文中,是否可能使类型变量引用外部上下文中的类型?例如, foo :: a -> ... -> .. foo = ... where bar :: a -> ... 现在bar的a和foo的a...