gpt4 book ai didi

types - Typed Racket 中的打字功能与 Clojure 中的类类型功能有何异同?

转载 作者:行者123 更新时间:2023-12-03 20:31:39 26 4
gpt4 key购买 nike

Clojure 有一些用于表示类型的有趣特性,包括但不限于 deftype , defprotocol , reifyextend .

Typed Racket 中的打字功能与 Clojure 中的类类型功能有何异同?

最佳答案

deftypedefprotocol在 Clojure 中定义动态行为。在 Racket 中,我们会用 struct 做类似的事情。或 struct-property , 虽然没有什么比 defprotocol在 Racket 。

编辑: Racket 现在有 generics ,类似于 Clojure 协议(protocol)。
reifyextend ,我认为,对应于 make-struct-type 的用途在 Racket 中,它动态地创建新的结构类型。

Typed Racket 和所有这些功能的最大区别在于 Typed Racket 在尝试运行之前静态检查您的程序。您永远不能在 Typed Racket 程序中应用错误的访问器,或者将数字用作函数。你甚至不能运行一个可能有这样错误的程序。

目前,Clojure 最像 Typed Racket 的特性是它用于性能的注解。

编辑:现在有Typed Clojure由 Ambrose Bonnaire-Sergeant 创作,灵感来自 Typed Racket。

关于types - Typed Racket 中的打字功能与 Clojure 中的类类型功能有何异同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554088/

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