No final da década de 70 várias variantes do LISP estavam em uso. Common Lisp começou como um remédio para uma diversificação exagerada, e uma versão unificada de LISp com o objetivo de integrar as vantagens de várias Lisps que existiam e evitando as desvantagens. Common Lisp foi um grande passo para frente, pois incorporou as lições aprendidas com Scheme.
Características técnicas do Lisp
- Funções de ordem elevada: Linguagens funcionais tipicamente suportam funções de ordem elevada
- Tipos de dados: átomo e a lista. É com apenas esses dois tipos de dados que se constroem as expressões-S, as estruturas basilares de LISP.
- Fraca Tipagem: LISP, em relação a outras linguagens funcionais mais recentes, é fracamente tipado, o que causa complicações, já que operações que acessam as suas estruturas de dados são tratadas como funções.
- Avaliação Ociosa: É o que ocorre quando uma função aninhada executa uma computação desnecessária para a avaliação da função que a chama, aumentando o tempo de execução.
- Um alto nível de abstração, especialmente quando as funções são utilizadas, suprimindo muitos detalhes da programação e minimizando a probabilidade da ocorrência de muitas classes de erros.
O Lisp fornece ao programador a capacidade de estender a linguagem como quiser, permitindo incorporar outros estilos de programação, como programação orientada a objetos, programação orientada a regras e outras. Quando aparece novos paradigmas de programação, a linguagem de programação Lisp incorpora-os facilmente enquanto as antigas linguagens morrem, isso permite adaptar a linguagem ao problema que estamos a resolver em vez de termos de adaptar o problema à linguagem que estamos a utilizar.
Quase todas as versões de Lisp possuem simultaneamente um compilador e um interpretador, permitindo misturar livremente código compilado e interpretado e permitindo realizar compilações incrementais
Algumas das ideias foram adquiridas de outras linguagens, mas a maior parte era nova, a combinação dessas ideias resultaram em um elegante sistema matemático bem como uma prática linguagem de programação, esse resultado mostra que programas LISP podem ser interpretados como sentenças e de primeira ordem lógica, confirmando que clareza logica valeria apena.