
On Thu, June 21, 2007 10:36 am, Steve Howell wrote: [...]
It's amazing how uncommon "the" and "a" are in mainstream programming languages. I'm not saying they should be (although I think there's some argument to using "the" for singletons), I just find it curious that they shouldn't be, and there's been enough evolution on programming languages (albeit a small amount of time compared to natural languages) to suggest that articles (as builtins) are just somehow *wrong* in programming languages. Yet they're so incredible popular in "natural" languages.
from random import randrange ABIGNUMBER = 100000 # or should it be THEBIGNUMBER? class ArticleError(Exception): pass def the(s): try: s = iter(s) ret = s.next() for el in s: raise ArticleError return ret except (StopIteration, TypeError): raise ArticleError("'the' argument must be a singleton iterable") def a(s): try: s = iter(s) for i, el in enumerate(s): if not randrange(i+1): ret = el if i == ABIGNUMBER: return ret return ret except (NameError, TypeError): raise ArticleError("'a' argument must be a non-empty iterable") an = a # for convenience :) --------------------- How to use 'a(n)' and 'the' -------
a ('python') 'y' a ('python') 'n' an (x for x in range(10) if x+x==x*x) 0 an (x for x in range(10) if x+x==x*x) 0 an (x for x in range(10) if x+x==x*x) 2 the (x for x in range(10) if x+x==x*x) Traceback (most recent call last): ... __main__.ArticleError: 'the' argument must be a singleton iterable the (x for x in range(1, 10) if x+x==x*x) 2 from itertools import count a (count()) 81294 a (count()) 41746 from itertools import repeat a (repeat('spam')) 'spam'
-- Arnaud