Erlang standard library quirks

Matthias Lang matthias@REDACTED
Mon Jan 30 11:05:34 CET 2006


James Hague writes:

 > What standard library quirks bug you?

Two that spring to mind:

  - 'string' and 'list' use conflicting argument order conventions.

    In the string module, all functions which operate on a string
    take the string as the _first_ argument.

    In the list module, the list is _last_ more often than not.

    Example: string:chr versus lists:member

    Not much which can be done about this, I think we're stuck with it.

  - The general vagueness about the speed/size properties of dict, 
    sets, gb_trees and other data structures. gb_trees (1), which
    is one of the 'less vague' ones says

      Behaviour is logaritmic [sic] (as it should be).

    An alternative which is almost as terse, but more informative:

      Insertion, deletion and lookup are O(log N), amortised.

    dict is worse, with just a snooty

       The representation of a dictionary is not defined.

    it may as well say "don't you worry about that". Turns out
    it's a hash (2).

Matthias    

(1): The original (?) paper about gb_trees is pleasantly lucid, a
     pleasure to read: http://user.it.uu.se/~arnea/abs/gb.html

(2): Read the source, or

       http://thread.gmane.org/gmane.comp.lang.erlang.general/12385
       http://www.cs.cmu.edu/afs/cs.cmu.edu/user/christos/www/courses/826-resources/PAPERS+BOOK/linear-hashing.PDF




More information about the erlang-questions mailing list