Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!feeder.erje.net!eu.feeder.erje.net!xlned.com!feeder3.xlned.com!news2.euro.net!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'syntax': 0.03; 'explicitly': 0.04; 'context': 0.05; 'constructor': 0.07; 'correct.': 0.07; 'function,': 0.07; 'remaining': 0.07; 'python': 0.09; 'immutable': 0.09; 'literal': 0.09; 'mutable': 0.09; 'notation': 0.09; 'subject:while': 0.09; 'survive': 0.09; 'to:addr:comp.lang.python': 0.09; 'cc:addr:python-list': 0.10; "wouldn't": 0.11; '(list)': 0.16; 'confusion': 0.16; 'denotes': 0.16; 'frozenset': 0.16; 'hypothetical': 0.16; 'syntax,': 0.16; 'syntax.': 0.16; 'wrote:': 0.17; 'typical': 0.17; 'solution.': 0.18; 'define': 0.20; 'object.': 0.22; 'cc:2**0': 0.23; 'cc:no real name:2**0': 0.24; 'cc:addr:python.org': 0.25; 'header:In- Reply-To:1': 0.25; 'header:User-Agent:1': 0.26; 'chris': 0.28; 'grouping': 0.29; 'oop': 0.29; 'them?': 0.29; 'array': 0.29; 'basic': 0.30; 'symbol': 0.33; 'problem': 0.33; 'received:google.com': 0.34; 'built-in': 0.35; 'mapping': 0.35; 'sequence': 0.35; 'there': 0.35; 'but': 0.36; 'should': 0.36; 'enough': 0.36; 'why': 0.37; 'subject:: ': 0.38; 'some': 0.38; 'apply': 0.39; 'list,': 0.39; 'remove': 0.61; 'include:': 0.61; '2013': 0.84; 'complexity': 0.84; 'dict,': 0.84 X-Received: by 10.49.84.167 with SMTP id a7mr827618qez.11.1360548546178; Sun, 10 Feb 2013 18:09:06 -0800 (PST) Newsgroups: comp.lang.python Date: Sun, 10 Feb 2013 18:09:06 -0800 (PST) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=70.196.109.207; posting-account=h3aEwQoAAACiuqX-oR3gvCVFm8lLHoWj References: <5002a1f9$0$29995$c3e8da3$5496439d@news.astraweb.com> <7b027612-a07e-40f9-8ad2-3e95c5440482@googlegroups.com> <86872ad2-fda0-403b-9f18-d1cb18e41860@t32g2000yqd.googlegroups.com> <50039290$0$29978$c3e8da3$5496439d@news.astraweb.com> <9309333c-13a0-464c-bd94-9c682363b8c9@googlegroups.com> <511516db$0$29969$c3e8da3$5496439d@news.astraweb.com> <62c3e7bb-d023-43b4-b759-f424707fd346@googlegroups.com> <75c82449-773e-4077-a6c9-e9cef08f845f@googlegroups.com> <13e5e306-d253-418e-a1b2-ac5bde03f07d@googlegroups.com> User-Agent: G2/1.0 X-Google-Web-Client: true X-Google-IP: 70.196.109.207 MIME-Version: 1.0 Subject: Re: Implicit conversion to boolean in if and while statements From: Rick Johnson To: comp.lang.python@googlegroups.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Message-ID: Lines: 56 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1360549057 news.xs4all.nl 6896 [2001:888:2000:d::a6]:33224 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:38637 On Saturday, February 9, 2013 10:50:25 PM UTC-6, Chris Angelico wrote: > [...] > I don't understand. Wouldn't freezing an array (list) result in a > tuple? And, why should there be no literal syntax for them? >=20 > Having a convenient literal notation for every basic type is extremely > handy.=20 Actually i must admit that you are correct. Of course the problem with lite= ral syntax is symbol congestion. But i have a solution. A solution that can= survive the limited number of grouping chars that python employs now. Exce= pt, i will define them explicitly {}: denotes ANY mapping object. []: denotes ANY mutable sequence object. (): denotes ANY immutable sequence object. <>: Hmm, there must be a good use for this one! The key to removing complexity is to declare the literal syntax much the wa= y Python "represents" a "set". Observe: py> set([1,2,3]) set([1,2,3]) Using this syntax we can apply "grouping" chars in proper context when writ= ing literal syntax. The only problem is how do we make this syntax unique e= nough to avoid confusion and complexity??? Some hypothetical literal synta= x, "syntaxes", include: [1,2,3] # Set literal (1,2,3) # FrozenSet literal set=3D>[1,2,3] # Set literal set=3D>(1,2,3) # FrozenSet literal set::[1,2,3] # Set literal set::(1,2,3) # FrozenSet literal set<[1,2,3]> # Set literal set<(1,2,3)> # FrozenSet literal # Set literal # FrozenSet literal set([1,2,3]) # Set literal set((1,2,3)) # FrozenSet literal ...and to avoid conflicts with the "set" function, we just remove the set f= unction! Only the types list, dict, and tuple(bka:StaticList!) should have = a built-in constructor function, the remaining should have a typical OOP st= yle constructor: mySet =3D Set([1,2,3]) mySetLiteral =3D set([1,2,3])