gpt4 book ai didi

scala - Haskell 中的哪些功能无法用 Scala 模拟?

转载 作者:行者123 更新时间:2023-12-01 03:51:16 25 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它.

8年前关闭。




Improve this question




目前我正在学习 Scala 和 Haskell。

我想知道 Haskell 在某些方面是否比 Scala (+ ScalaZ) 更强大?
例如,我知道 Haskell 的代数数据类型、TypeClasses、currying、惰性等可以在 Scala 中很好地实现。

是否有一些无法轻松映射到 Scala 的 Haskell 程序?如果是,那么 Scala 中缺少什么功能会阻止这种映射?

我的直觉是 Scala 至少和 Haskell 一样强大,我只是不确定这种直觉是否正确。有人可以证实这一点吗?

编辑:
我明白亚伯拉罕森的观点。仿真的定义确实至关重要。我会从实际的角度来定义仿真,假设一个知道 Haskell 和 Scala 的程序员可以在 1-2 小时内将 100 行 Haskell 代码转换为等效的 Scala 代码。现在的问题是,什么是等价的?这意味着,将 Haskell 代码中的逻辑构造转换为 Scala 中的等效逻辑构造,例如 Haskell 中的类型类转换为使用隐式实现的等效构造。

编辑2:
回应 Travis 的评论:为简单起见,我们只考虑 vanilla Haskell。

编辑 3:

This问题类似。

最佳答案

虽然 Scala 有类型推断,但它比 Haskell 弱,因为 Haskell 使用 a(a 的扩展)Hindley-Milner type system这允许特别强大的推理。 Scala 的类型系统允许更广泛的类型概念(例如它也是面向对象的),这意味着 Haskell 使用的类型推断算法不起作用。 (此外,实际上,为了使编译器和编译器编写者更容易,Scala 的类型推断比它可能的要弱。)

关于scala - Haskell 中的哪些功能无法用 Scala 模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22515644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com