Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
October 25, 2011 [Issue 6849] New: std.algorithm.remove design | ||||
---|---|---|---|---|
| ||||
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: nobody@puremagic.com ReportedBy: bearophile_hugs@eml.cc --- Comment #0 from bearophile_hugs@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: ------- |
October 25, 2011 [Issue 6849] std.algorithm.remove design | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=6849 --- Comment #1 from bearophile_hugs@eml.cc 2011-10-25 16:27:57 PDT --- I didn't fully understand the situation, as it often happens: http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.learn&article_id=30277 Yet I think the problem exists, and there are Python (and other languages) programmers too coming to D. See some comments, with an alternative proposal too, about a replaceInPlace() function: http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.learn&article_id=30281 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 26, 2011 [Issue 6849] std.algorithm.remove design | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=6849 --- Comment #2 from bearophile_hugs@eml.cc 2011-10-26 10:14:57 PDT --- From the same thread: http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.learn&article_id=30294 Steven Schveighoffer: > Here is the resulting array and final state of a: > > import std.stdio, std.algorithm; > void main() { > int[] a = [ 0, 1, 2, 3 ]; > writeln( remove!(SwapStrategy.unstable)(a, 1)); > writeln(a); > } > > output: > > [3, 1, 2] > [3, 1, 2, 3] > > Clearly, index 0 was removed, not index 1. Please file a bug. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 26, 2011 [Issue 6849] std.algorithm.remove design | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=6849 --- Comment #3 from Steven Schveighoffer <schveiguy@yahoo.com> 2011-10-26 10:25:44 PDT --- (In reply to comment #2) > From the same thread: > > http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.learn&article_id=30294 > > Steven Schveighoffer: > > > > > Clearly, index 0 was removed, not index 1. Please file a bug. This is not a design bug, it's an actual bug in the code (does not work as designed), it should be separate from this enhancement request. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
October 26, 2011 [Issue 6849] std.algorithm.remove design | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=6849 --- Comment #4 from bearophile_hugs@eml.cc 2011-10-26 15:07:02 PDT --- (In reply to comment #3) > (In reply to comment #2) > > From the same thread: > > > > http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.learn&article_id=30294 > > > > Steven Schveighoffer: > > > > > > > > Clearly, index 0 was removed, not index 1. Please file a bug. > > This is not a design bug, it's an actual bug in the code (does not work as designed), it should be separate from this enhancement request. Right, it's my mistake of mixing two different things in the same issue. Sorry. I'll open another issue. Please ignore Comment #2. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
November 16, 2011 [Issue 6849] std.algorithm.remove design | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=6849 --- Comment #5 from bearophile_hugs@eml.cc 2011-11-15 16:57:35 PST --- To clear up this bug report I close it and replace it with a a bug report and a more focused enhancement request. See bug 6956 instead of Comment #2. See also bug 6957. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
November 16, 2011 [Issue 6849] std.algorithm.remove design | ||||
---|---|---|---|---|
| ||||
Posted in reply to bearophile_hugs@eml.cc | http://d.puremagic.com/issues/show_bug.cgi?id=6849 bearophile_hugs@eml.cc changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation