From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12728 invoked from network); 16 Jun 2008 08:07:39 -0000 X-Spam-Checker-Version: SpamAssassin 3.2.4 (2008-01-01) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.2.4 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 16 Jun 2008 08:07:39 -0000 Received-SPF: none (ns1.primenet.com.au: domain at sunsite.dk does not designate permitted sender hosts) Received: (qmail 84314 invoked from network); 16 Jun 2008 08:07:36 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 16 Jun 2008 08:07:36 -0000 Received: (qmail 18521 invoked by alias); 16 Jun 2008 08:07:34 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 25157 Received: (qmail 18508 invoked from network); 16 Jun 2008 08:07:34 -0000 Received: from bifrost.dotsrc.org (130.225.254.106) by sunsite.dk with SMTP; 16 Jun 2008 08:07:34 -0000 Received: from prunille.vinc17.org (vinc17.pck.nerim.net [213.41.242.187]) by bifrost.dotsrc.org (Postfix) with ESMTP id 1E1E48028AC3 for ; Mon, 16 Jun 2008 10:07:27 +0200 (CEST) Received: by prunille.vinc17.org (Postfix, from userid 501) id 7E3002349A5D; Mon, 16 Jun 2008 10:07:26 +0200 (CEST) Date: Mon, 16 Jun 2008 10:07:26 +0200 From: Vincent Lefevre To: Zsh hackers list Subject: Re: arithmetic operator precedence Message-ID: <20080616080726.GP10734@prunille.vinc17.org> Mail-Followup-To: Zsh hackers list References: <20080612095723.GF5113@sc.homeunix.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20080612095723.GF5113@sc.homeunix.net> X-Mailer-Info: http://www.vinc17.org/mutt/ User-Agent: Mutt/1.5.18-vl-r22984 (2008-06-11) X-Virus-Scanned: ClamAV 0.92.1/7488/Mon Jun 16 08:06:58 2008 on bifrost X-Virus-Status: Clean Speaking of precedence, the following one is nasty: vin% zsh -c 'echo $((-3**2))' 9 vin% bash -c 'echo $((-3**2))' 9 vin% ksh93 -c 'echo $((-3**2))' 9 IMHO these shells should be fixed to give -9, i.e. ** should have the precedence over the unary -, like conventional math writing. Nowadays most modern software does it right, the main exception being MS Excel and other spreadsheet software that mimics its behavior (current versions of OpenOffice and Gnumeric, despite the users' complaints). See http://www.macnauchtan.com/pub/precedence.html for the behavior of various software on that. This page is incomplete. One can add: Qalculate/qalc, calc, wcalc, GP/PARI and MuPAD as doing it right, ditto for the future version of Abakus (that will be released for KDE 4). -- Vincent Lefèvre - Web: 100% accessible validated (X)HTML - Blog: Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)