On 03/29/2010 01:59 AM, Steven D'Aprano wrote: > On Sun, 28 Mar 2010 06:48:21 +1100, Lie Ryan wrote: > >> On 03/22/2010 07:07 PM, Steven D'Aprano wrote: >>> Perhaps you should have said that it was a wrapper around deque giving >>> richer functionality, rather than giving the impression that it was a >>> brand new data structure invented by you. People are naturally going to >>> be more skeptical about a newly invented data structure than one based >>> on a reliable, component like deque. >> >> Well, technically StringChain is not a data structure in the first >> place. StringChain is a string; > > And strings are data structures, as are arrays and structs. Just because > they're simple data structures made directly from primitives rather than > rich, complex structures, doesn't mean they're not data structures.
Array is a way to structure data and thus a data structure; array is the concept of structuring data using contiguous memory with elements addressed by an index. string is just a contiguous memory reserved to store data, or in other words: string is an array. This is what I meant when I said string is not itself a data structure. >> a string that is implemented using deque >> data structure to make appending algorithmically efficient. It is not a >> data structure, in the sense that I can't put arbitrary "thing" into the >> data structure. > > Any "thing" that can be pickled or serialised can be put into a string. Fair enough, you're right to think so but IMHO I disagree. Streams (or perhaps 'blob' to avoid the connotation of FIFO) are the data structure which you can put anything pickleable/serialisable into, but string (the implementation of stream/blob using array) are just a special case of array data structure and not a different, separate data structure than array. Perhaps I should not make such a bold claim as saying string is not data structure; what I have in mind is that string is just a special case of array and not distinctly separate data structure than array. -- http://mail.python.org/mailman/listinfo/python-list