How Does One Sort Strings?
Matthias Lang
matthias@REDACTED
Thu Apr 24 20:01:19 CEST 2003
Eric Newhuis writes:
> Given a list of strings ["I", "want", "to", "ride", "my",
> "bicycle"] how can I sort them in Erlang? Lets suppose
> there are 100s - 1000s of strings.
Bengt already told you the easy solution. That's one of the cool
things about Erlang: the easy way often works with quite decent performance:
4> file:read_file("/home/matthias/toread/CD-Writing.txt").
{ok,<<bladebladeblablabla>>}
5> {ok, Bin} = file:read_file("/home/matthias/toread/CD-Writing.txt").
{ok,<<32,32,67,...>>>}
6> size(Bin).
70219
7> Tokens = string:tokens(binary_to_list(Bin), " \n\t"), bequiet.
bequiet
8> length(Tokens).
9184
9> lists:sort(Tokens).
["!",
"!",
"\"",
"\"",
"\"\b\"f\bfe\bea\bat\btu\bur\bre\bes\bs\"\b\"",
...
all of that was "instant". If you don't like the built-in sort order,
take a look at lists:sort/2.
BTW, I strongly recommend the index to the Erlang documentation. It
got a whole lot better recently (I think in the R7->R8 transition, not
sure). For this particular example, the first entry for "sort" answers
your question. See:
http://www.erlang.org/doc/r9b/doc/index.html
Matt
More information about the erlang-questions
mailing list