Path: csiph.com!usenet.pasdenom.info!gegeweb.org!usenet-fr.net!nerim.net!novso.com!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!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.016 X-Spam-Evidence: '*H*': 0.97; '*S*': 0.00; 'warnings': 0.04; 'arguments,': 0.09; 'function,': 0.09; 'assume': 0.14; 'design:': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'subject:Programming': 0.16; 'subject:python': 0.16; 'language': 0.16; 'wrote:': 0.18; 'wed,': 0.18; 'fit': 0.20; 'programming': 0.22; 'defined': 0.27; 'header:In-Reply-To:1': 0.27; 'function': 0.29; 'external': 0.29; 'am,': 0.29; 'message-id:@mail.gmail.com': 0.30; 'that.': 0.31; '25,': 0.31; 'checking.': 0.31; 'crash': 0.31; 'libraries': 0.31; 'sep': 0.31; 'there.': 0.32; 'languages': 0.32; 'quite': 0.32; 'limitation': 0.33; 'but': 0.35; 'received:google.com': 0.35; 'system,': 0.38; 'to:addr:python- list': 0.38; 'does': 0.39; 'support,': 0.39; 'to:addr:python.org': 0.39; 'system.': 0.39; 'easy': 0.60; "you're": 0.61; 'talking': 0.65; 'rusi': 0.91; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=2XcXx9DEy+MhUtye0ZWCS1xHYNjaSOam3/fx1QSdUoM=; b=NXE7oW7CRy0Tz9ldtfCVCfC8S8blzQpmjjGCuCEignunK90ny3LWkb/KNRlP/8v1Zl NufTO4TSlYtNTm+kQqzIVsH5AVH4QE5HJtLjrjwQX5eBdpSjzpaqnZ2DZRjAnSdiDdxl yjCFxKxCfGfo0ChIqhTd1FlBk1BqXE1tFqvahPDN/zFj1s4SG9cOADFDznw6h5bs23x/ uKgKQSf02ID4AYu0PkFkaRMKfqyL7uolYva5vekUx6oYmKPd2sJBXF/xCuvTufFZb0W7 e7NgJSLdPsipBnQFp7j+cTrK1hIHnABuDk/AQ3s2N5SxRPEAzh4MKXTyAX+A56/xt34p MypQ== MIME-Version: 1.0 X-Received: by 10.58.218.225 with SMTP id pj1mr7209541vec.24.1380036381620; Tue, 24 Sep 2013 08:26:21 -0700 (PDT) In-Reply-To: <32dd86b4-e99d-485b-a2b3-bc173f67289d@googlegroups.com> References: <840ba5b2-761b-4f89-990b-75218e3cd7fb@googlegroups.com> <9b9126bc-875a-4045-9613-d2d81b30cf1c@googlegroups.com> <32dd86b4-e99d-485b-a2b3-bc173f67289d@googlegroups.com> Date: Wed, 25 Sep 2013 01:26:21 +1000 Subject: Re: Functional Programming and python From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-1 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: , Newsgroups: comp.lang.python Message-ID: Lines: 16 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1380036385 news.xs4all.nl 15961 [2001:888:2000:d::a6]:35187 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:54706 On Wed, Sep 25, 2013 at 1:07 AM, rusi wrote: > And this is an old conundrum in programming language design: > > In C printf is easy to write and NOT put into the language but into external libraries > In Pascal, writeln cannot be outside the language because as a user defined function, its type would not fit the type system. > > And so printf can be made to crash quite easily; not so writeln! I assume you're talking about mismatching percent-markers and arguments, there. That's because of a limitation in C's variadic function support, ameliorated somewhat by gcc's warnings system, and completely solved by other languages in which (s)printf can still be an external function, but with reliable type checking. It's not whether it's part of the language or not that does that. ChrisA