16 lines
409 B
Factor
16 lines
409 B
Factor
! Based on Clojure's PersistentHashMap by Rich Hickey.
|
|
|
|
USING: accessors kernel locals persistent.hashtables.nodes ;
|
|
IN: persistent.hashtables.nodes.empty
|
|
|
|
M: empty-node (entry-at) 3drop f ;
|
|
|
|
M: empty-node (pluck-at) 2nip ;
|
|
|
|
M:: empty-node (new-at) ( shift value key hashcode node -- node' added-leaf )
|
|
value key hashcode <leaf-node> dup ;
|
|
|
|
M: empty-node >alist% drop ;
|
|
|
|
M: empty-node hashcode>> drop 0 ;
|