• Stefan Monnier's avatar
    * lisp/emacs-lisp/map.el: Make the functions generic · 1691a510
    Stefan Monnier authored
    Make them document their delegation relationship, to clarify when
    a method is needed.
    (map--dispatch): Give more info in the error message.
    (map-elt): Make it generic and deprecate the 'testfn' arg.
    (map-put): Make it obsolete.
    (map-length): Make it work on hash-tables.
    (map-apply): Define it in terms of map-do.
    (map-do, map-into): Use cl-generic dispatch instead of map--dispatch.
    (map-empty-p): Define it in terms of map-length.
    (map-contains-key): Deprecate 'testfn'.  Make it return a boolean, so
    it can return non-nil even if 'key' is nil.  Improve implementation to
    avoid constructing an intermediate list of all keys.
    (map-merge-with): Use 'eql' rather than `eq'.
    (map-put!): Rename from map--put and make it generic, to replace map-put.
    (map--apply-alist, map--apply-hash-table, map--apply-array):
    Turn them into methods of map-apply.
    (map--do-alist, map--do-array): Turn them into methods of map-do.
    (map--into-hash-table): Turn it into a method of map-into.
    1691a510
NEWS 54.5 KB