Clojure具有代表类型的一些有趣的功能,包括但不限于deftype,defprotocol,reify和extend. Typed Racket中的打字功能和Clojure中类型的功能有什么相似之处和区别? deftype和defprotocol定义了Clojure中的动
Typed Racket中的打字功能和Clojure中类型的功能有什么相似之处和区别?
deftype和defprotocol定义了Clojure中的动态行为.在Racket中,我们将使用struct或struct-property来执行类似的操作,尽管在Racket中没有什么像defprotocol.编辑:Racket现在有generics,这就像Clojure协议.
我认为,扩展和扩展对应于在Racket中使用make-struct-type,它动态创建新的结构类型.
Typed Racket和所有这些功能之间的巨大区别在于,Typed Racket会在执行程序之前静态检查程序.您不能在Typed Racket程序中应用错误的访问器,或者使用数字作为函数.你甚至不能运行一个可能有错误的程序.
目前,最喜欢Typed Racket的Clojure的功能是它用于演奏的注释.
编辑:现在Typed Clojure由Ambrose Bonnaire-Sergeant,灵感来源于Typed Racket.