我正试图了解如何使用isa?
函数,但我还没有完全理解这个函数的有效参数是什么,但它们似乎是类型设计者、或类型名称,或者是Clojure术语中有这样的说法。
我的问题是:给定两个有效的isa?
类型设计者,我该如何知道这两个指定的类型是否相交。也就是说,是否可以有一个既是这两种类型之一的对象?
Ambrose的博客文章对此有一些暗示,让我更加好奇。
正如博客文章所指定的,Clojure中没有类似于Common Lisp中的subtypep
函数。但在Common Lisp中,我可以询问类型A是否是类型B的子类型,并且我可以将交集类型表示为(and A B)。因此,我可以通过询问交集是否是空类型来提出交集问题。(subtypep (and A B) nil)
Clojure中与此最相似的是什么?