Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,24 @@
|
|||
(defrecord Node [prev next data])
|
||||
|
||||
(defn new-node [prev next data]
|
||||
(Node. (ref prev) (ref next) data))
|
||||
|
||||
(defn new-list [head tail]
|
||||
(List. (ref head) (ref tail)))
|
||||
|
||||
(defn insert-between [node1 node2 new-node]
|
||||
(dosync
|
||||
(ref-set (:next node1) new-node)
|
||||
(ref-set (:prev new-node) node1)
|
||||
(ref-set (:next new-node) node2)
|
||||
(ref-set (:prev node2) new-node)))
|
||||
|
||||
(set! *print-level* 1)
|
||||
|
||||
;; warning: depending on the value of *print-level*
|
||||
;; this could cause a stack overflow when printing
|
||||
|
||||
(let [h (new-node nil nil :A)
|
||||
t (new-node nil nil :B)]
|
||||
(insert-between h t (new-node nil nil :C))
|
||||
(new-list h t))
|
||||
Loading…
Add table
Add a link
Reference in a new issue