At 9:12 AM -0700 7/27/05, Larry Wall wrote:
Yes. The only thing I don't like about it is that any() isn't an Any.
Maybe we should rename Any to Atom. Then maybe swap Item with Atom,
since in colloquial English you can say "that pair of people are
an item." That would give us:
- Object
- Item
- Atom
- ...pretty much everything
- Pair
- Junction
- num, int, str...
which nicely distinguishes Item from Junction. On the other hand,
I actually kinda dislike the word "Atom" for common use (too much
exposure to Lisp, I guess), so maybe we just want
- Object
- Mumble
- Item
- ...pretty much everything
- Pair
- Junction
- num, int, str...
where Mumble is something like Atom/NonJunction/Unit/Scalar/[your ad here].
At 11:35 AM -0700 7/27/05, Larry Wall wrote:
We're looking
for a simple type name that means none(Junction) for use as the
default type of the $x parameter to -> $x {...}. Whatever we call
it, this type/class/role/subtype has to admit Item and Pair objects
but not Junctions. (And if that's the wrong way to think about it,
please tell us why.)
Between what you've said, I prefer the top diagram myself. Where
<something> and Pair are each Item. Item seems more generic, and is
what one often calls a constituent of a list being iterated through.
So the $x parameter to -> $x {...} should be called Item.
So then the question is what to replace Atom with:
- Object
- Item
- Mumble
- ...pretty much everything
- Pair
- Junction
- num, int, str...
In my brainstorming, I found it is a lot easier to come up with words
that mean single than non-junction. So working from that perspective
...
Why don't we just call it a Single?
- Object
- Item
- Single
- ...pretty much everything
- Pair
- Junction
- num, int, str...
The noun Single is common in speech, unambiguous in meaning, and
looks visually distinct from all the other types. It is often used
side by side in speech, such as "she is a single" and "they are a
pair". Also, Single doesn't suggest being indivisible like Atom does.
I also vote against the use of Scalar there, since Scalar seems too
specific. Likewise with NonJunction, if we can help it, because it
looks messy.
-- Darren Duncan