ClojureDocs

Nav

Namespaces

isa?

clojure.core

Available since 1.0 (source)
  • (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
3 Examples
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
;; you can use vectors to test multiple child/parent pairs

user=> (derive ::child-1 ::parent-1)
nil

user=> (derive ::child-2 ::parent-2)
nil

user=> (isa? [::child-1 ::child-2] [::parent-1 ::parent-2])
true
See Also

Establishes a parent/child relationship between parent and tag. Parent must be a namespace-qualifi...

Added by TimMc

Evaluates x and tests if it is an instance of the class c. Returns true or false

Added by Chouser

Removes a parent/child relationship between parent and tag. h must be a hierarchy obtained from ma...

Added by klauern

Returns the immediate and indirect parents of tag, either via a Java type inheritance relationship...

Added by klauern

Returns the immediate parents of tag, either via a Java type inheritance relationship or a relatio...

Added by klauern

Returns the immediate and indirect children of tag, through a relationship established via derive....

Added by klauern

Creates a hierarchy object for use with derive, isa? etc.

Added by klauern
0 Notes
No notes for isa?