hello,
I'm a hobyist-programmer and around where I live there's a group of haskell fanatics. They posted solutions to a recent programming challenge which I find to be a bit ugly. For fun I wanted to implement it in d and a rough version (not correct yet, this was written/hacked in 5 minutes after reading the exercise)
"omkom -> komkom
because of : kom
momkom
momkom -> momkomm"
This is because of what remove from std.algorithm does. It not only returns a range with that element removed (as the name implies), it also modifies the original range.
I assume this decision was made for efficiency purposes but that is one of the most ugliest things I have ever come across. At least c# forces the 'ref' in it's parameters so you know something's up. Is there any way I could've known this? (apart from reading the documentation on every single trivial function in the std library?)