; dicts (func dict () (list)) (func dict? (in) (empty? (filter (lambda (x) (not (eq? x 2))) (map list-length in)))) (func has? (in :list key) (not (empty? (filter (lambda (x) (eq? (first x) key)) in)))) (func get (d :list key) (first (rest (first (filter (lambda (x) (eq? (first x) key)) d))))) (func set (d :list key val) (if (has? d key) (map (lambda (x) (if (eq? key (first x)) (list (first x) val) x)) d) (append d (list key val)))) (func keys (d :list) (map first d)) (func drop (d :list key) (filter (lambda (x) (not (eq? (first x) key))) d))