<div dir="ltr"><div>This works fine:<br></div><div>  string x = find("Hello", 'H');</div><div><br></div><div>This doesn't:</div><div>  string y = find(retro("Hello"), 'H');<br></div>
<div>  > Error: cannot implicitly convert expression (find(retro("Hello"), 'H')) of type Result!() to string</div><div><br></div><div>Is that wrong? That seems to be how the docs suggest it should be used.</div>
<div><br></div><div>On a side note, am I the only one that finds std.algorithm/std.range/etc for string processing really obtuse?</div><div>I can rarely understand the error messages, so say it's better than STL is optimistic.</div>
<div>Using std.algorithm and std.range to do string manipulation feels really lame to me.</div><div>I hate looking through the docs of 3-4 modules to understand the complete set of useful string operations (std.string, std.uni, std.algorithm, std.range... at least).</div>
<div>I also find the names of the generic algorithms are often unrelated to the name of the string operation.</div><div>My feeling is, everyone is always on about how cool D is at string, but other than 'char[]', and the builtin slice operator, I feel really unproductive whenever I do any heavy string manipulation in D.</div>
<div>I also hate that I need to import at least 4-5 modules to do anything useful with strings... I feel my program bloating and cringe with every gigantic import that sources exactly one symbol.</div></div>