Xref: utzoo comp.lang.lisp:3626 comp.lang.scheme:1655 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!decwrl!shelby!neon!andy From: andy@Neon.Stanford.EDU (Andy Freeman) Newsgroups: comp.lang.lisp,comp.lang.scheme Subject: Re: Virtues of Lisp syntax Message-ID: <1990Sep12.021238.6859@Neon.Stanford.EDU> Date: 12 Sep 90 02:12:38 GMT References: <33709@cup.portal.com> <1990Sep10.091911.20877@hellgate.utah.edu> <11048@cadillac.CAD.MCC.COM> Organization: Computer Science Department, Stanford University Lines: 40 To: ned%cad@mcc.com In article <11048@cadillac.CAD.MCC.COM> ned%cad@MCC.COM (Ned Nowotny) writes: >In so far as extension languages are concerned, this is the most >important argument against unsugared Lisp syntax. Most people >learned mathematics with infix operators and most people are more >accustomed to communicating in a written form where keywords and >separators are the typical delimiters, obviating the need for >parenthesis or bracket matching. In fact, most users are not >persuaded by arguments that Lisp syntax is "elegant" or "easy >to learn." They are far more likely to believe that the programmer >was to lazy to build a simple parser and therefore decided, because >of the obvious intrinsic value of the product, that the user should >be willing to be the parser for an otherwise unfamiliar notation. >This attitude, at best, is not customer-oriented and, in any case, >is unproductive. Parsing technology is well developed. Extension >languages can fairly easily accommodate an ALGOL-like syntax while >still providing all the semantics of Lisp (or Scheme, for that >matter.) This makes a couple of assumptions that are unlikely to be true. 1) We're not doing +,-,*,/ arithmetic, we're programming. (BTW - "+" isn't really a binary operator, neither is "*"; there are surprisingly few true binary, or unary, operations.) 2) One consequence is that binary and unary operators are the exception; in fact, operators with arbitrary arity are common, or at least would be if "modern" languages were as upto date as lisp. That being the case, infix notation doesn't work and prefix notation requires delimiters, which brings us back to lisp-like syntaxes. As to the development of parsing technology, the state-of the art syntax for n-ary operators, user-defined or system defined, is: op() I don't see that that is a big improvement over lisp syntax. -andy -- UUCP: {arpa gateways, sun, decwrl, uunet, rutgers}!neon.stanford.edu!andy ARPA: andy@neon.stanford.edu BELLNET: (415) 723-3088