4

Looking through the August 1979 issue of Byte magazine, it discusses a dialect of Lisp in which arithmetic operations are denoted by words like PLUS and TIMES.

Later dialects like Common Lisp and Scheme use the symbols common to other languages like + and *.

When did Lisp generally switch from one convention to the other?

  • 1
    Are you able to give more information about the dialect of Lisp you were just reading about? – Wilson Mar 28 at 16:29
  • @Wilson It doesn't seem to say what the dialect is specifically called, or if it does, I missed it. The Byte issue can be downloaded in PDF if you want to take a look yourself. – rwallace Mar 29 at 4:37
  • 1
    Scheme is actually earlier than 1979. Scheme was first described in 1975 and had already + and *. – Rainer Joswig Apr 2 at 7:09
14

Lisp is not a single language, but a whole ecosystem of different languages. Moreover, there's no standard covering all Lisps, like with C or Fortran, so for this reason, + and plus are equally "valid".

When Lisp 1 (March 1960) was written, the primitive operations defined were car, cdr, cons, and, or, cond, etc. The arithmetic operations were not primitives at that time, so the programmers chose their own names.

At least Lisp 1.5 (early 60s) had both.

But this Lisp from 1970 had PLUS and MINUS but no + nor -.

If you consider Scheme (1975) to be a Lisp, then it is a specimen having both + and &+ (the latter is an optimisation for two arguments only).

And Common Lisp (1984) has + but not plus as you have noted.

So I posit that we gradually settled on +-style symbols starting in the 70s, and the situation was a state of flux before then, for the reason that arithmetic operations were not even primitive operations to begin with.

  • 2
    Common Lisp does have a standard; in fact it was the first object-oriented language to get an ANSI standard. – sds Mar 28 at 16:18
  • 11
    @sds, That's right, but there's no standard that covers everything that I'd personally call Lisp. – Wilson Mar 28 at 16:24
  • 2
    The way I read the LISP 1.0 doc, the arithmetic functions have to have alphanumeric names, since they're atoms, and atoms have names that are alphanumeric. – another-dave Mar 28 at 22:04
  • 2
    Agree; but I meant "+ was not possible" rather than "PLUS is the only possibility". – another-dave Mar 29 at 12:01
  • 1
    The Lisp I manual specified the functions SUM and PRDCT for float operations. It provides PLUS and TIMES for use in symbolic algebraic expressions. See the function SMPLFY. – Rainer Joswig Apr 2 at 7:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.