import string.

...
return str.join(" ");


gives

Error: template std.array.join cannot deduce function from argument types !()(string, string), candidates are: \..\..\src\phobos\std\array.d(1591): std.array.join(RoR, R)(RoR ror, scope R sep) if (isInputRange!RoR && isInputRange!(Unqual!(ElementType!RoR)) && isInputRange!R && is(Unqual!(ElementType!(ElementType!RoR)) == Unqual!(ElementType!R))) \..\..\src\phobos\std\array.d(1668): std.array.join(RoR, E)(RoR ror, scope E sep) if (isInputRange!RoR && isInputRange!(Unqual!(ElementType!RoR)) && is(E : ElementType!(ElementType!RoR))) \..\..\src\phobos\std\array.d(1754): std.array.join(RoR)(RoR ror) if (isInputRange!RoR && isInputRange!(Unqual!(ElementType!RoR)))

simply trying to join a string[] with a separator. I tend to get these types of errors when doing simple things in D. Virtually every other programming language just works as expected. You can pretty much just jump in there and pretty much guess at the function name, the arguments, and it will work. In Phobos, seems like it follows an anti-pattern. You always end up having to look at documentation unless you are familiar enough with D and use it in a regular basis to remember its quirks and odd behavior. Seems that the same functions are defined differently in different modules and the modules not always the expected ones. (strip is another one that throws me for a loop. I always try trim first... that is what everyone else uses, yeah, it's just a name, but then why strip?)

Phobos seems to be rather unorganized and not logically put together. Any hopes of this ever getting fixed or do I need to start putting together my own library?

Reply via email to