hashmaps are now first class objects in the language

This commit is contained in:
Felix Brendel
2019-10-04 17:48:31 +02:00
parent ac70c14e5b
commit 5e82f9175d
15 changed files with 166 additions and 51 deletions
+25
View File
@@ -0,0 +1,25 @@
(define hm1 (create-hash-map))
(hm/set! hm1 1 "a")
(hm/set! hm1 "a" (lambda (x) (+ x 1)))
(assert (= ((hm/get hm1 (hm/get hm1 1)) 2) 3))
(define hm2 (create-hash-map))
(hm/set! hm2 'yes :yes)
(hm/set! hm2 :yes 'yes)
(assert (= (hm/get hm2 'yes) :yes))
(assert (= (hm/get hm2 :yes) 'yes))
(assert (= (hm/get hm2 (hm/get hm2 'yes)) 'yes))
(assert (= (hm/get hm2 (hm/get hm2 :yes)) :yes))
(assert (= (hm/get hm2 (hm/get hm2 (hm/get hm2 'yes))) :yes))
(assert (= (hm/get hm2 (hm/get hm2 (hm/get hm2 :yes))) 'yes))
(define hm3 (create-hash-map))
(hm/set! hm3 + 'plus)
(hm/set! hm3 - 'minus)
(assert (= (hm/get hm3 +) 'plus))
(assert (= (hm/get hm3 -) 'minus))