Xref: utzoo comp.lang.lisp:3642 comp.lang.scheme:1663 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!samsung!munnari.oz.au!goanna!ok From: ok@goanna.cs.rmit.oz.au (Richard A. O'Keefe) Newsgroups: comp.lang.lisp,comp.lang.scheme Subject: Re: Virtues of Lisp syntax Summary: binary operations Message-ID: <3758@goanna.cs.rmit.oz.au> Date: 14 Sep 90 07:45:24 GMT References: <33709@cup.portal.com> <1990Sep10.091911.20877@hellgate.utah.edu> Followup-To: comp.lang.lisp Organization: Comp Sci, RMIT, Melbourne, Australia Lines: 19 In article , pcg@cs.aber.ac.uk (Piercarlo Grandi) writes: > On 12 Sep 90 02:12:38 GMT, andy@Neon.Stanford.EDU (Andy Freeman) said: > andy> 1) We're not doing +,-,*,/ arithmetic, we're programming. (BTW - "+" > andy> isn't really a binary operator, neither is "*"; there are > andy> surprisingly few true binary, or unary, operations.) > Precisely. Agreed. Even the semantics are different. I missed this the first time it came around. I have some bad news for the two of you: in floating-point arithmetic "+" _is_ a binary operation. Floating-point "+" and "*" are not associative. If one Lisp compiler turns (+ X Y Z) into (plus (plus X Y) Z) and another turns it into (plus X (plus Y Z)) then they are going to produce _different_ results. For integer and rational arithmetic, there's no problem, but anyone doing floating point calculations in Lisp has to be very wary of non-binary + and * . -- Heuer's Law: Any feature is a bug unless it can be turned off.