[erlang-questions] Maps
Loïc Hoguin
essen@REDACTED
Fri May 10 13:48:19 CEST 2013
On 05/10/2013 05:03 AM, Richard A. O'Keefe wrote:
> Frames are optimised (pared to the bone, in fact) for use in
> record-like ways. They are somewhere between pathetic and
> hopeless as general purpose dictionaries.
I think that's the bigger issue with frames. Are they worth spending the
time implementing considering they are essentially a records
replacement? Records work good enough for most purposes, with the
exception of upgrades, which few people do anyway.
Maps have the potential to replace proplists, dicts, and also some
record misuses, where an interface requires you to include a file to
have the records definition (the file example found in the EEP is one).
They're much more interesting to implement.
As far as I understand maps are not meant as a replacement for #state{}
records.
> (K) Frames only allow atoms as keys, maps allow any term.
Atoms are only good for record-like use or list of options. They are a
minority in a reasonably sized application (Cowboy, 8k+ lines, for
example). Maps on the other hand with keys as iodata() would be much
helpful to store many things related to requests and responses, like
headers, cookies and more, and to convert them quickly with maps
comprehensions.
> But it gets better. In dictionary-like uses, you have *few*
> dictionaries with key sets that tend to be *different*.
Not my experience.
--
Loïc Hoguin
Erlang Cowboy
Nine Nines
http://ninenines.eu
More information about the erlang-questions
mailing list