Tag: 推理

是什么让Haskell的types系统比其他语言的types系统更“强大”呢?

阅读Scalatypes系统与Haskell的缺点? ,我不禁要问:具体来说,Haskell的types系统比其他语言的types系统(C,C ++,Java)更强大。 显然,即使Scala也不能像Haskell的types系统那样执行一些相同的function。 究竟是什么使Haskell的types系统(Hindley-Milnertypes推断)如此强大? 你能给个例子吗?

Julia是dynamicinput的吗?

很多博客和手册本身都说Julia是dynamicinput的 。 但是从阅读本手册开始,听起来更像是静态键入 types推理 ,如F# 。 Julia静态地键入types推断? 它是dynamicinput的吗? 我假设它是dynamicinput的,手册看起来不太可能是错误的。 types推断是否涉及Julia?

什么是Hindley-Milner?

我遇到了Hindley-Milner这个名词,我不确定是否掌握了它的意思。 我读过以下post: Steve Yegge – dynamic语言反击 Steve Yegge – 木偶奇遇记问题 Daniel Spiewak – 什么是Hindley-Milner? (为什么它很酷?) 但是这个词在维基百科上没有单一的条目,通常给我一个简明的解释。 注 – 现在已经添加了一个 它是什么? 哪些语言和工具实现或使用它? 你能提供一个简洁的答案吗?

为什么不从构造函数推断模板参数?

我今天的问题很简单:编译器为什么不能从类构造函数中推断出模板参数,就像从函数参数中可以这样做呢? 例如,为什么以下代码无效: template<typename obj> class Variable { obj data; public: Variable(obj d) { data = d; } }; int main() { int num = 2; Variable var(num); //would be equivalent to Variable<int> var(num), return 0; //but actually a compile error } 正如我所说,我明白这是无效的,所以我的问题是为什么不是? 会允许这个创build任何主要的语法漏洞? 是否有一个不希望这个function的实例(推断types会导致问题)? 我只是想了解允许模板推理function背后的逻辑,但不适合适当构build的类。