Larry Wall wrote:
But as far as English is concerned, sets are justHmm. I would argue that most of the time, when English Speakers use sets quite commonly in their speak, and often refer to them as lists (e.g. Shopping Lists). In fact, when expressing any list, we go out of our way to explicitly give them an order or ranking. Not to mention people do think in terms of sets. Back to the shopping list, you have the set of things on your list (#list), and the set of things in your cart (#cart), as well as the things in the store (#store).
objects that have a singular outside and a (potentially) plural inside,
much like almost any other object. At least, that's how concrete
sets work.
What can you cross off your list? #list x #cart
What's left to buy? #list - #cart
What's not available? #list - #store
What did you buy that wasn't asked for? #cart - #list
Add to this the not infrequent use of the phrase "You listed ___ twice." in response to hearing a list, thus implying something more set-ish about it than an array gets. Or the frequency with which one gives six or more responses to the question "What are your top 5 ____?"
I have little ability to translate hashes into English, beyond "How many cans of ___ are in the cupboard?"
So in terms of frequency of use in the English Language, I'd rank things in the following order:
1) Scalars
2) Sets
3) Arrays
4) Hashes
As for Perl Speakers, I would argue that a high percentage of the time someone says C< for @list {...} >, they really don't care for which order the elements are executed in, just that they are. Creating a hash where all the values are 1, just to get the set like features of the keys, is a fairly common Perl idiom.
As Computer Science Speakers, Sets are a very fundamental data structure. Okay, not as fundamental as Arrays. But easily more so than Hashes.
Programmers tend not to speak in terms of Sets very often, because their languages don't support them.
Junctions, on the other hand, almost never come up in English, except as a Set. Where do you see sentences which have a word which means two other words _at_once_, and the listener is supposed to understand all of the meanings? Double entendres come close, but there are two main drawbacks: 1) only a limited set of words can be used in this case, and each of them has a very limited number of values it can possess. Not any noun taking on the value of any two or more other nouns at once. 2) it is almost never in question that only one meaning was meant, and the other meaning was merely a cover, to prevent a faux-pas.
-- Rod Adams