On Sunday, 23 December 2012 at 14:43:25 UTC, Andrei Alexandrescu wrote:
On 12/23/12 9:08 AM, foobar wrote:
Regarding std.algorithm, the module isn't called - 'classic, consecrated algorithms the kind you'll find in a book entitled "Algorithms"'. It is simply called 'std.algorithm' and there are many, *many* books on algorithms. Should this module include concurrent algorithms? Should it include distributed algorithms? Should it include statistic algorithms? Should it include natural language processing algorithms? Should it include genetic algorithms? I think it's clear by now that the name does
not convey what you intend it to convey.

Importing std.container doesn't mean all containers conceivable will be there, and so on. Sense and sensibility must always be exercised.

A much better and more user friendly scheme would be to classify the algorithms by their *functionality* and not by some undefined "belongs
to classical algorithms books" relation.
e.g. "Sorting algorithms", "Set operations", etc.
Now, if I want to sort something I know to "shop" at the "sorting algorithms" outlet and don't need to spend time going over a potentially
infinite list of algorithms.

I like std.algorithm the way it is.


Andrei

On Sunday, 23 December 2012 at 14:43:25 UTC, Andrei Alexandrescu
wrote:
On 12/23/12 9:08 AM, foobar wrote:
Regarding std.algorithm, the module isn't called - 'classic, consecrated algorithms the kind you'll find in a book entitled "Algorithms"'. It is simply called 'std.algorithm' and there are many, *many* books on algorithms. Should this module include concurrent algorithms? Should it include distributed algorithms? Should it include statistic algorithms? Should it include natural language processing algorithms? Should it include genetic algorithms? I think it's clear by now that the name does
not convey what you intend it to convey.

Importing std.container doesn't mean all containers conceivable will be there, and so on. Sense and sensibility must always be exercised.

A much better and more user friendly scheme would be to classify the algorithms by their *functionality* and not by some undefined "belongs
to classical algorithms books" relation.
e.g. "Sorting algorithms", "Set operations", etc.
Now, if I want to sort something I know to "shop" at the "sorting algorithms" outlet and don't need to spend time going over a potentially
infinite list of algorithms.

I like std.algorithm the way it is.


Andrei

Same here. In my mind it's about generality:

General purpose algorithms (sort, partition etc.) belong in
std.algorithm and more specific algorithms belong in their own
appropriately named modules.

Reply via email to