On Wednesday, 1 June 2016 at 12:41:19 UTC, Seb wrote:
On Wednesday, 1 June 2016 at 12:14:07 UTC, Patrick Schluter
wrote:
On Tuesday, 31 May 2016 at 17:54:34 UTC, qznc wrote:
There is a special version of find for searching a single
char in a string. Using a one-letter needle string is more
like a user mistake than something to optimize for.
At compile time you may not know the length of the needle,
like in the grep command.
1) how about a CTFE find?
s.find!(needle, pred)
If we can initialize boyer-moore or KMP at compile time - it
should be the fastest!
At ndslice such functions are called bifacial:
http://dlang.org/phobos/std_experimental_ndslice_iteration.html
Imho a lot more in std.algorithm should be able to profit from
facts known at compile-time.
2) Even for a runtime runtime one-letter needle I am pretty
sure it's worth to specialize
That makes sense. I think that std.algorithm needs to be revised
and optimized for speed. We cannot afford to have suboptimal
algorithms in there.