问题标签 [existential-type]

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.

0 投票
11 回答
30063 浏览

language-agnostic - 什么是存在类型?

我通读了 Wikipedia 文章Existential types。我收集到它们被称为存在类型是因为存在运算符 (∃)。不过,我不确定这有什么意义。有什么区别

?

0 投票
5 回答
7188 浏览

java - Scala的存在类型和Java通配符的区别?

比 Stack Overflow 问题更具体一点什么是存在类型?,Scala的存在类型和Java的通配符有什么区别,最好有一些说明性的例子?

到目前为止,在我所看到的所有内容中,它们似乎都相当。

一些参考。Martin Odersky提到了他们;谷歌对我的问题的热门回答

MO:最初的通配符设计……受到存在类型的启发。事实上,原始论文有一个存在类型的编码。但是当实际的最终设计出现在 Java 中时,这种联系有点丢失了

0 投票
3 回答
941 浏览

scala - 为什么除非添加显式类型参数,否则以下 Scala 代码无法编译?

上面的代码编译失败。编译器的错误信息是:

如果我将方法声明更改为UnknownValuedef getType: Option[Class[_]] = None那么不带类型参数的 Map() 也会编译。

为什么?

0 投票
5 回答
1074 浏览

haskell - Haskell 问题:约束数据类型以使用 show

代码:

我希望Const a包含一个 show 类型的值,以便我以后可以打印它。所以在 C# 中我会写:

我怎么能在 Haskell 中做到这一点?

0 投票
2 回答
517 浏览

haskell - Haskell 计数列表类型

所以,只是为了好玩,我一直在玩 Haskell 中的 CountedList 类型,使用 Peano 数字和智能构造函数

类型安全headtail对我来说真的很酷。

我想我已经达到了我知道该怎么做的极限

(对于任何转录错误,我深表歉意——我最初用我的 Haskell 编译器写这个的机器目前已关闭)。

我所做的大部分编译都没有问题,但我遇到了ofListand的问题filter。我想我理解为什么 - 当我说时ofList :: [a] -> CountedList n a,我是在说ofList :: forall n . [a] -> CountedList n a- 创建的列表可以是任何所需的计数类型。我想写的是相当于伪类型的ofList :: exists n . [a] -> CountedList n a,但我不知道怎么写。

有没有一种解决方法可以让我像我想象的那样编写ofListfilter运行,或者我已经达到了我能做的极限?我有一种感觉,我缺少一些存在类型的技巧。

0 投票
2 回答
953 浏览

scala - 价值的存在量化

我在 Scala 语言规范(3.2.10 Existential Types)中遇到了对值的存在量化。

有人有说明性的用例吗?

T forSome {val x: S}定义为T forSome { type t <: S with Singleton }。规范(3.2.1 单例类型)中提到了 Singletron 特征,但我在 Scaladoc 中找不到它。它在哪里定义?

0 投票
2 回答
517 浏览

c# - 此代码是否描述了 C# 中的存在类型?

目前正在观看 Bart De Smet 对 IQueryable 的解释,他提到了 Existential Types(我对此一直很好奇)。在阅读了这个问题的答案后,我只是想知道这是否是一种在 C# 中构造它的方法:

这个想法是,如果所有具体类都被定义为私有嵌套类(或者可能只是内部类),那么您将被迫只使用接口。

0 投票
2 回答
1290 浏览

haskell - 如何在 Haskell 中声明一种抽象数据容器类型?

我阅读了 William Cook 的“On Data Abstraction, Revisited”,并重新阅读了 Ralf Laemmel 的“The expression lemma”,试图了解如何在 Haskell 中应用之前论文的想法。所以,我试图了解如何在 Haskell 中实现一个集合联合函数而不指定类型?

0 投票
2 回答
720 浏览

haskell - Haskell:现有类型的记录更新

当我遇到错误时,我试图对存在记录使用记录更新。一个快速的谷歌让我找到了功能请求 #2595,它显示它在版本 6.8.3 中为 GHC 实现。我使用的是 6.10.4,所以我认为它应该可以工作,但是功能请求中的示例代码:

产生与功能请求中抱怨的相同的错误:

这是在某个时候有意放弃的功能,还是我应该提交错误报告?

0 投票
1 回答
2261 浏览

polymorphism - OCaml 中的状态单子

我试图在 OCaml 中实现 state monad(作为练习)。我的实现如下所示:

我为记录字段选择了存在类型,因为我不喜欢使用仿函数并将状态类型包装在模块中的想法。getState上面的实现是有效的,但是我在实现and时遇到了问题setState。我试图像这样实现它们:

这不起作用,因为推断的字段类型,例如'a -> ('a * 'a)'a -> (unit * 'a),不如声明的类型通用's . 's -> ('a * 's)。我理解为什么会发生这种情况,但我想知道是否有另一种使用记录方法使其工作的方法?

谢谢。

干杯,亚历克斯