http://d.puremagic.com/issues/show_bug.cgi?id=6849
Summary: std.algorithm.remove design Product: D Version: D2 Platform: x86 OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: Phobos AssignedTo: nob...@puremagic.com ReportedBy: bearophile_h...@eml.cc --- Comment #0 from bearophile_h...@eml.cc 2011-10-25 04:21:13 PDT --- A D2 program: import std.stdio, std.algorithm; void main() { dchar[] data = "abcde"d.dup; writeln(data); writeln(remove(data, 0)); writeln(data); writeln(remove(data, 2)); writeln(data); } With DMD 2.056beta3 it prints: abcde bcde bcdee bcee bceee Expected output: abcde bcde bcde bce bce Or maybe it's better for remove() to return void, to underline its in-place nature (this is often done in Python, where functions the modify da in-place usually return just None, and functions with a name that ends with "ed" create new data and return it, like the sort/sorted pair): import std.stdio, std.algorithm; void main() { dchar[] data = "abcde"d.dup; writeln(data); data.remove(0); writeln(data); data.remove(2); writeln(data); } Expected output: abcde bcde bce This is similar to what happens in Python2: >>> data = ['a', 'b', 'c', 'd', 'e'] >>> del data[0] >>> data ['b', 'c', 'd', 'e'] >>> del data[2] >>> data ['b', 'c', 'e'] -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------