Returns the immediate parents of tag, 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
;; simple example showing single parented derivation
;; then adding another parent
user=> (derive ::toy_poodle ::poodle)
nil
user=> (parents ::toy_poodle)
#{:user/poodle}
user=> (derive ::toy_poodle ::toy_dogs)
nil
user=> (parents ::toy_poodle)
#{:user/poodle :user/toy_dogs}
user=>
(defn parents
"Returns the immediate parents of tag, 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"
{:added "1.0"}
([tag] (parents global-hierarchy tag))
([h tag] (not-empty
(let [tp (get (:parents h) tag)]
(if (class? tag)
(into1 (set (bases tag)) tp)
tp)))))
Comments top
No comments for parents. Log in to add a comment.