association lists at elisp
Emacs Lisp has alists (association lists), and it works like maps in modern languages. Pretty easy to use:
(let ((key-value-pairs '(("name" . "John") ;; name -> John ("age" . "30"))) ;; age -> 30 (key-values-pairs '(("fruits" "apple" "banana") ;; fruits -> (apple banana) ("vegetables" "beets")))) ;; vegetables -> (beets) `( ,(assoc "age" key-value-pairs #'string-equal) ,(alist-get "name" key-value-pairs "not found" nil #'string-equal) ,(alist-get "vegetables" key-values-pairs '("none") nil #'string-equal)))
(("age" . "30") "John" ("beets"))
See more at Info node (elisp) Association Lists