Common Lisp

QuicklispANSI Common LispArmed Bear Common LispLispLisp-2ABCLdefmacroearmuff conventionLisp-1Lisp-1 vs. Lisp-2
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (R2004) (formerly X3.226-1994 (R1999)).wikipedia
468 Related Articles

Lisp (programming language)

LispLisp programming languageLisp 1.5
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (R2004) (formerly X3.226-1994 (R1999)).
Today, the best-known general-purpose Lisp dialects are Clojure, Common Lisp, and Scheme.

Common Lisp Object System

CLOSCLOS MOPCommon Lisp Object System (CLOS)
Common Lisp includes CLOS, an object system that supports multimethods and method combinations.
The Common Lisp Object System (CLOS) is the facility for object-oriented programming which is part of ANSI Common Lisp.

Functional programming

functionalfunctional programming languagefunctional language
It supports a combination of procedural, functional, and object-oriented programming paradigms.
However, programming languages that support functional programming have been used in industry, including Common Lisp, Scheme, Clojure, Wolfram Language, Racket, Erlang, OCaml, Haskell, and F#.

Object-oriented programming

object-orientedobject orientedobject-oriented programming language
Common Lisp includes CLOS, an object system that supports multimethods and method combinations. It supports a combination of procedural, functional, and object-oriented programming paradigms.
Common Lisp,

Programming paradigm

Multi-paradigmmulti-paradigm programming languageprogramming paradigms
Common Lisp is a general-purpose, multi-paradigm programming language.
Some languages are designed to support one paradigm (Smalltalk supports object-oriented programming, Haskell supports functional programming), while other programming languages support multiple paradigms (such as Object Pascal, C++, Java, JavaScript, C#, Scala, Visual Basic, Common Lisp, Scheme, Perl, PHP, Python, Ruby, Wolfram Language, Oz, and F#).

Scheme (programming language)

SchemeScheme programming languageR6RS
This is a key difference between Common Lisp and Scheme.
It is one of the three main dialects of Lisp, alongside Common Lisp and Clojure.

Richard P. Gabriel

Richard Gabriel
These names were coined in a 1988 paper by Richard P. Gabriel and Kent Pitman, which extensively compares the two approaches.
Richard P. Gabriel (born 1949) is an American computer scientist known for his work in computing related to the programming language Lisp, and especially Common Lisp.

Common Lisp HyperSpec

The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived from the ANSI Common Lisp standard.
It is not the American National Standards Institute (ANSI) Common Lisp standard, but is based on it, with permission from ANSI and the International Committee for Information Technology Standards (INCITS, X3).

Common Lisp the Language

The first language documentation was published 1984 as Common Lisp the Language, first edition.
Common Lisp the Language is an influential reference book by Guy L. Steele about a set of technical standards and programming languages named Common Lisp.

Kent Pitman

Kent M. Pitman
These names were coined in a 1988 paper by Richard P. Gabriel and Kent Pitman, which extensively compares the two approaches.
Pitman was chair of the ad hoc group (part of X3J13) that designed the Common Lisp Error and Condition System and is author of the proposal document that was ultimately adopted, and many papers on Lisp programming and computer programming in general.

Dynamic programming language

dynamicdynamic languagedynamic languages
As a dynamic programming language, it facilitates evolutionary and incremental software development, with iterative compilation into efficient run-time programs. CLOS is a dynamic object system with multiple dispatch and multiple inheritance, and differs radically from the OOP facilities found in static languages such as C++ or Java.
The following examples show dynamic features using the language Common Lisp and its Common Lisp Object System (CLOS).

Spice Lisp

By the early 1980s several groups were already at work on diverse successors to MacLisp: Lisp Machine Lisp (aka ZetaLisp), Spice Lisp, NIL and S-1 Lisp.
Spice Lisp evolved into an implementation of Common Lisp, and was renamed CMU Common Lisp (CMUCL).

Multiple inheritance

diamond problemmulti-inheritanceDiamond inheritance problem
CLOS is a dynamic object system with multiple dispatch and multiple inheritance, and differs radically from the OOP facilities found in static languages such as C++ or Java.
Languages that support multiple inheritance include: C++, Common Lisp (via Common Lisp Object System (CLOS)), EuLisp (via The EuLisp Object System TELOS), Curl, Dylan, Eiffel, Logtalk, Object REXX, Scala (via use of mixin classes), OCaml, Perl, POP-11, Python, R, Raku, and Tcl (built-in from 8.6 or via Incremental Tcl (Incr Tcl) in earlier versions).

Multiple dispatch

multimethodsmultimethoddynamic multimethod dispatch
Common Lisp includes CLOS, an object system that supports multimethods and method combinations. CLOS is a dynamic object system with multiple dispatch and multiple inheritance, and differs radically from the OOP facilities found in static languages such as C++ or Java.
In a language with multiple dispatch, such as Common Lisp, it might look more like this (Common Lisp example shown):

Symbol (programming)

symbolsymbolsatom
The symbol type is common to Lisp languages, but largely unknown outside them.
A symbol in Lisp is unique in a namespace (or package in Common Lisp).

Sigil (computer programming)

sigilsigilssuffixes
It is an important convention in Common Lisp programming that special (i.e. dynamically scoped) variables have names which begin and end with an asterisk sigil in what is called the “earmuff convention”.
In Common Lisp, special variables (with dynamic scope) are typically surrounded with in what is dubbed the “earmuff convention”.

CLISP

Some Unix-based implementations (CLISP, SBCL) can be used as a scripting language; that is, invoked by the system transparently in the way that a Perl or Unix shell interpreter is.
In computing, CLISP is an implementation of the programming language Common Lisp originally developed by Bruno Haible and Michael Stoll for the Atari ST.

Relational operator

comparisonComparecomparison operator
For example, the function takes a relational operator as an argument and key function as an optional keyword argument.
Other conventions are less common: Common Lisp and Macsyma/Maxima use Basic-like operators except for inequality, which is in Common Lisp and in Macsyma/Maxima.

Exception handling

exceptionexceptionserror handling
The condition system is responsible for exception handling in Common Lisp.
This was then adopted by Common Lisp.

American National Standards Institute

ANSIAmerican Standards AssociationAmerican National Standard
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (R2004) (formerly X3.226-1994 (R1999)).

Clozure CL

ClozureClozure Common LispOpenMCL
Clozure CL (CCL) is a Common Lisp implementation.

LispWorks

LispWorks is computer software, a proprietary implementation and integrated development environment (IDE) for the programming language Common Lisp.

Allegro Common Lisp

Franz Allegro Common Lisp
Allegro Common Lisp is a programming language with an integrated development environment (IDE), developed by Franz Inc. It is a dialect of the language Lisp, a commercial software implementation of the language Common Lisp.

S-expression

S-expressionsfully parenthesized prefix notationparentheses
It uses S-expressions to denote both code and data structure.
Example in Common Lisp:

CMU Common Lisp

CMUCLCarnegie Mellon University Common LispCarnegie Mellon University
CMUCL is a free Common Lisp implementation, originally developed at Carnegie Mellon University.