On 5/8/14, 10:46 AM, Andrei Alexandrescu wrote:
[snip]

Here's a list of algorithms in std.algorithm that would need to be looked at if we want to handle ranges of char and wchar properly (at least versions with predicates). When I say "looked at" I mean "modified appropriately to handle ranges of char and wchar in addition to strings".

========================

Searching: all any canFind count countUntil commonPrefix endsWith find findAdjacent findAmong findSkip findSplit findSplitAfter findSplitBefore minCount minPos mismatch skipOver startsWith until

Comparison: cmp equal levenshteinDistance levenshteinDistanceAndPath mismatch

Iteration: filter  filterBidirectional  group  map  reduce  splitter  uniq

Sorting: completeSort isPartitioned isSorted makeIndex nextPermutation nextEvenPermutation partialSort partition partition3 schwartzSort sort topN topNCopy

Set operations: (probably none, because set ops are rare on strings)

Mutation: bringToFront copy fill initializeAll moveAll moveSome remove reverse strip stripLeft stripRight swapRanges uninitializedFill

========================

Of these, only a fraction (maybe 60-70%) are actually used with strings. Still that leaves a significant amount of work to do if we want std.algorithm to work smoothly with ranges of char/wchar. Here "smoothly" means "if it compiles and runs it won't do something UTF-goofy".



Andrei

Reply via email to