【发布时间】:2012-08-14 05:49:46
【问题描述】:
我听说有人声称:
Scala 的类型系统令人惊叹(存在类型、变体、协变体)
由于宏的强大功能,Clojure 中的一切都是库:(模式匹配、逻辑编程、非确定性......)
问题:
如果两个断言都为真,为什么 Scala 的类型系统不是 Clojure 中的库?是不是因为:
类型是不能作为库工作的其中一种? [IE。更改必须以某种方式贯穿每个现有的 clojure 库,包括 clojure.core?]
Scala 的类型概念是否与 clojure 协议/记录根本不兼容?
... ?
【问题讨论】:
-
@Ankur:我相信 Scalar 的类型系统 :: Haskell 的类型系统 == Clojure :: Scheme 。它失去了一些纯粹性,但解决了许多实际问题。
-
我不确定在动态类型系统语言中实现静态类型系统是否可行
-
@Ankur:这是一个原型github.com/frenchy64/typed-clojure
-
这是一个类型检查器,本身不是类型系统。
-
@user1311390 请记住,Typed Clojure 和 Typed Racket 不如 Haskell 或 Scala 类型系统强大。没关系,在类型系统中达到与从一开始就不是语言的一部分的类型系统相同的表达水平几乎是不可能的。