I'm using property lists in Common Lisp to represent a binary tree with some additional information. I'd like to be able to dig arbitrarily deep into the tree with a single function, and also modify it accordingly.
In Clojure (which is the other Lisp I use), there exist functions called get-in and assoc-in which can do exactly this, but I haven't found anything similar in Common Lisp. Do they actually exist, or am I going to have to write them?
*pl*as follows:(:a 1 :b (:a 2 :b 3)). Then,(get-in *pl* '(:b :a))would give me2, and(assoc-in *pl* '(:b :a) 5)would return(:a 1 :b (:a 5 :b 3)). - Koz Ross