Login
7 branches 0 tags
Ben (X13/Void) Increased [cat] buffer as a dirty workaround 053fb27 4 years ago 304 Commits
nujel / stdlib / tree.nuj
; Nujel - Copyright (C) 2020-2021 - Benjamin Vincent Schulenburg
; This project uses the MIT license, a copy should be included under /LICENSE

;; Some functions about trees

[defun tree/zip [keys values]
       "Return a tree where KEYS point to VALUES"
       [def ret [tree/new]]
       [while keys
	      [tree/set! ret [car keys] [car values]]
	      [cdr! keys]
	      [cdr! values]
       ]
       ret
]

[defun tree/+= [t k v]
       "Increment value at K in T by V"
       [tree/set! t k [+ v [int [tree/get t k]]]]
]

[defmacro tree/++ [t k]
       "Increment value at K in T by 1"
       `[tree/+= ~t ~k 1]
]