An open API service indexing awesome lists of open source software.

https://github.com/rutledgepaulv/hierarchical

Clojure hierarchy semantics for associative data structures.
https://github.com/rutledgepaulv/hierarchical

clojure data-structure hierarchy

Last synced: about 1 year ago
JSON representation

Clojure hierarchy semantics for associative data structures.

Awesome Lists containing this project

README

          

# hierarchical

[![Build Status](https://travis-ci.org/RutledgePaulV/hierarchical.svg?branch=develop)](https://travis-ci.org/RutledgePaulV/hierarchical)

Hierarchical is a library providing views over associative data structures that utilize
Clojure's hierarchy semantics for membership tests rather than strict equality.

## Usage

```clojure
(ns example
(:require [hierarchical.core :as h]))

(derive ::pets ::animals)
(derive ::farm ::animals)
(derive ::cows ::farm)
(derive ::cats ::pets)
(derive ::dogs ::pets)

(def kingdom
{::animals {:eat "Grass"}
::pets {:eat "Pet Food"}
::cats {:eat "Fancy Feast"}})

(def hiera (h/hierarchical kingdom))

(::cats hiera)
; {:eat "Fancy Feast"}

(::dogs hiera)
; {:eat "Pet Food"}

(::cows hiera)
; {:eat "Grass"}

```

### License

This project is licensed under [MIT license](http://opensource.org/licenses/MIT).