On 18/08/12 14:52, Morgan L. Owens wrote:
Rasmus Schultz wrote:

> I disagree - this is (or should be) a simple, atomic operation...
> yet, you've got a function-call, an intermediary variable, a boolean
> test, and an unset statement repeating the name of the array you're
> deleting from.
>
> This should be a simple statement or function/method-call, and in
> most other languages it would be...

How simple is it? Does it:

1) Remove one occurrence of the element (presumably the first) or all?
2) Reindex the array (as someone else argued was necessary to make it "properly indexed" afterwards) or not?
3) Modify the array in-place or return a modified array?
4) Use type-strict or normal comparisons?
Personally, I like Python's list.remove(x), which I think might be what he wants. Certainly it's what I want when I need to remove a list item. See: http://docs.python.org/tutorial/datastructures.html*

*According to the docs, it does this: " Remove the first item from the list whose value is/x/. It is an error if there is no such item."

So to answer you, 1) one, 2), no, 3) in-place, 4) type-strict (I don't see how a weakly-typed comparison for identifying an array value would help anyone).

That's sixteen different interpretations of "remove a given value from an array" right there. Leave support for any of them out and someone is going to complain that they have to write a function to do what should be a "simple statement". Support all of them and there will probably _still_ be someone who wants their own particular set of circumstances catered for without having to write their own function to do it.


Just my 2ยข.

--
Andrew Faulds
http://ajf.me/

Reply via email to