Talk:Search a list

From Rosetta Code
Revision as of 23:04, 19 September 2011 by 192.139.122.42 (talk) (→‎Erlang)

Is it really essential that the sequence of strings is in an array? For some languages, other data structures may be more suitable. Indeed, the Common Lisp example uses a list instead of an array, and therefore doesn't conform to the current task description. Also note that the task's title speaks of a list, but the task description speaks of an array, which is sort of a contradiction. I think it would be better to allow the examples for each language to use any data structure for the sequence, as long as it's directly provided by the language or standard library. --Ce 13:33, 26 November 2008 (UTC)

I don't think the operative word is "list", but "index" instead. As long as the collection innately supports access at an index it should be fine.--Mwn3d 14:24, 26 November 2008 (UTC)
What does it mean to "inately support access at an index"? Of course for any sequence you can define access at index n by just starting at the first element and then going to the next element n times (this gives zero-based indexing, of course). Note that in Lisp, the function nth does exactly that for lists. However, for a real array, accessing the element at index n is a constant-time operation. Therefore, would you say that Lisp lists (as opposed to Lisp vectors) "inately support access at an index"? And if so, what would a sequence look like that doesn't do so?
Also, does it really matter for the task that you can access the element through that index? After all, the indexing itself isn't demonstrated. I guess the question comes down to what the task is actually intended to demonstrate. --Ce 16:47, 26 November 2008 (UTC)
You may be right. The collection type is obviously not the focus of this task, so it shouldn't be restricted if collections other than arrays fit the bill. It shouldn't be restricted to "haystack[i]" because first, some languages don't use that syntax and second, some collections which do support indexing do it through functions and methods (like nth from List or ArrayList.get() from Java). It should work for collections where if I run this function and get an index, then add an element to the "end" of the collection (that is, add an element to an end of the collection so that its index is greater than the index I got when I ran the function), then run the function again with the same arguments, I should get the same number. If that sounds like an OK specification, then which collections match it? --Mwn3d 16:59, 26 November 2008 (UTC)
I have changed the wording to indexable ordered collection which would include arrays, lists, tuples, hashes/dictionaries ... and removed access syntax which does not apply in some manguages. I hope it is suitably generic. --Paddy3118 06:46, 27 November 2008 (UTC)
P.S. I couldn't help extending the task too. --Paddy3118 06:46, 27 November 2008 (UTC)


Erlang

lists:dropwhile/2 should be used probably, to simplify traversing list.

What???

Only a Java programmer could have come up with such a ridiculous task description.