(isa? child parent) (isa? h child parent)
Returns true if (= child parent), or child is directly or indirectly derived from parent, either via a Java type inheritance relationship or a relationship established via derive. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to the global hierarchy
user=> (import 'java.util.PriorityQueue)
java.util.PriorityQueue
user=> (bases PriorityQueue)
(java.util.AbstractQueue java.io.Serializable)
user=> (import 'java.util.AbstractQueue)
java.util.AbstractQueue
user=> (isa? PriorityQueue AbstractQueue)
true
user=> (bases AbstractQueue)
(java.util.AbstractCollection java.util.Queue)
user=> (isa? PriorityQueue java.util.AbstractCollection)
true
user=> (isa? PriorityQueue java.util.Queue)
true
user=> (isa? java.util.PriorityQueue java.util.TreeMap)
false
user=> (derive ::Feline ::Animal)
nil
user=> (derive ::Cat ::Feline)
nil
user=> (derive ::Lion ::Feline)
nil
user=> (isa? ::Lion ::Feline)
true
user=> (isa? ::Lion ::Animal)
true
user=> (isa? ::Tuna ::Feline)
false