2024年Clojure现状调查! 中分享您的看法。

欢迎!请查阅关于页面以获取更多关于该系统如何运作的信息。

0
记录与类型

我正试图了解如何使用isa?函数,但我还没有完全理解这个函数的有效参数是什么,但它们似乎是类型设计者、或类型名称,或者是Clojure术语中有这样的说法。
我的问题是:给定两个有效的isa?类型设计者,我该如何知道这两个指定的类型是否相交。也就是说,是否可以有一个既是这两种类型之一的对象?

Ambrose的博客文章对此有一些暗示,让我更加好奇。
正如博客文章所指定的,Clojure中没有类似于Common Lisp中的subtypep函数。但在Common Lisp中,我可以询问类型A是否是类型B的子类型,并且我可以将交集类型表示为(and A B)。因此,我可以通过询问交集是否是空类型来提出交集问题。(subtypep (and A B) nil)

Clojure中与此最相似的是什么?

1 条回答

0

https://clojure.org/reference/multimethods是创建任意关键字层次结构和使用isa?的好概述。

不确定我是否足够理解类型问题或Lisp环境来回答其余的。

...