On 28/07/19 9:10 AM, Chris Angelico wrote:
When talking about indistinguishable objects, is it correct to talk
about "the <x>" or "an <x>"?
Example:
def f(s):
     """Frob a thing.
     If s is an empty string, frobs all the things.
     OR
     If s is the empty string, frobs all the things.
     """
It's entirely possible that a Python implementation will optimize
small strings and thus have exactly one empty string, but it's also
entirely possible to have multiple indistinguishable empty strings.
Grammatically, is it better to think of empty strings as an entire
category of object, and you were passed one from that category ("an
empty string"), or to think of zero-length instances of 'str' as being
implementation details referring to the one and only Platonic "empty
string"?
Does it make a difference to usage if the object is mutable? For
instance, would you say "the empty string" but "an empty set"?


Python:

Immutable:
>>> NULSTRING = ""
>>> A_NULSTRING = ""
>>> THE_NULSTRING = ""
>>> id( NULSTRING )
139654031453296
>>> id( A_NULSTRING )
139654031453296         <<< it's all the same, to me!
>>> id( THE_NULSTRING )
139654031453296         <<< they're all the same, to me?

Mutable:
>>> ONE = 1
>>> A_ONE = 1
>>> THE_ONE = 1
>>> id( ONE )
139654256829664
>>> id( A_ONE )
139654256829664         <<< likewise
>>> id( THE_ONE )
139654256829664

>>> ONE = 1 + 1
>>> id( ONE )
139654256829696         <<< as you'd expect
>>> id( A_ONE )
139654256829664
>>> id( THE_ONE)
139654256829664

>>> ONE = 1
>>> id(ONE)
139654256829664         <<< did you expect this?

There is only a/the ONE way.
Disclaimer: I am not Dutch!


English:

Whilst the formalities of English grammar distinguish the specific ("the") from the general case ("a" or "an"), eg "the Python language" cf "a programming language". Spoken or colloquial English can be quite different from academically-correct text - and in this case is!
(he says dangling a participle to demonstrate)

Whereas the indefinite article can only be used in the singular, the definite article may be used as both singular and plural.

        A NULSTRING
        THE ONESIE
        THE ONESIES

(a choice of 'article' which will enrage both grammarians and fashionistas, in equal measure!*)
* oops, did you notice that it is "measure" and not "measures"?


If you were verbally suggesting an API to someone else, eg

        class API(): def __init__( self, path="" ): ...

Would you use either the definite or indefinite article?

Trick question!

The unequivocal answer is: "neither"! We would say "default id to NULSTRING".
(similarly: "default [int value] to ONE")


When you advise this other person, and when (s)he writes such code, do any of us care whether all NULSTRING-s have the same id() or not? When speaking, not! When typing, not! (and I venture to suggest, there'd be very few occasions when someone, suffering tight memory constraint*, went through counting NULSTRING-s seeking re-factor potential!)

PS should that be "constraint" because there's only one, ie "memory"; or "constraints"?


English is a ghastly language to learn because of its many irregular forms. The issue here is less about the preceding article, and more about the noun, ie NULSTRING, ONE, etc.

Some nouns are positively confusing, eg "jeans". How many pairs of trousers/pants are there? (and then there is the same problem with the word "trousers", or if you prefer "pants"!) Few people wear more than one - at the same time. Yet we still say "jeans" as if the two legs are not somehow part of the single item.

Other nouns are written as if plural but are only used in the singular, eg maths. If you only attend the one course, how many maths courses do you attend? Did you really think mathematics a precise science? (or should that have been "precise sciences"?) NB American English (English people reel in 'shock, horror') appears more correct in preferring the term "math" - but before anyone becomes too cocky, try "physics"!

Thus George Bernard Shaw's claim that the two nations are "divided by the use of a common language", and the virtue of non-native speakers learning "Globish" or similar.


To really confuse language-learners, we only need to add "collective nouns", eg "team" - they're enough to make one feel sheep-ish. (Ho ho!) Oh look, we're back to the question: is it "a team" or "the team"?


Aren't most of us happy with the article-free wording?

We should be concerned for "ONE" because as Harry Nilsson said, it is "the loneliest number"!

I'll become concerned for you, should you start to look too closely at the concept of a NULSTRING (None, "infinite", ...). If you look into it too deeply, you will realised that you are standing on the edge of an abyss, and the roaring noise in your ears/an ear/the ears comes from the black hole, which is about to swallow you up, never to return* to us again!
(*from an/the institution caring for the mentally-ill)...


Yours sincerely, undoubtedly off-balance, but nevertheless well articulated.
--
Regards =dn
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to