Viagem pelo Mundo LISP #1


 Lisp é uma família linguagens de programação que se encaixa no paradigma funcional tendo surgido por volta da década de 50 com John McCarthy tendo padrão Common Lisp estabelecido na década de 80 e possuindo vários dialetos. 

Uma possibilidade para rodar códigos em lisp, em particular o Common Lisp, é através do compilador de lisp SBCL ou com CLisp. Em ambientes Linux é possível usar o Emacs para editar os códigos lisp com SBCL e Slime. No Windows é possível usar a combinação Emacs, SBCL, Slime e Quicklisp através do Portacle.

 

Sintaxe

Uma das características comuns da linguagem Lisp é o uso de parênteses e o fato de operadores antecederem operandos em uma notação conhecida como prefixa.

Exemplo (no dialeto "common lisp") abaixo calcula o fatorial de um número $ n \in \mathbb{N} $ definido como $ n! = n \times (n - 1) \times ( n - 2) \times \cdots \times 2 \times 1 $ com $ 0! = 1 $.

( defun fat ( n )
    ( if ( = n 1 )
        1
        ( * ( fat ( - n 1 ) ) n )
    )
)

Deixo algumas dicas de sites sobre a linguagem Lisp como o site https://lisp-lang.org/ com referências sobre a linguagem.   Algumas implementações lisp:

Usuários Windows podem considerar usar o Portacle que combina o uso do EMacs, SLime, SBCL e Quicklisp (gestor de packages lisp) https://portacle.github.io/

 

GUI

Para criação de interfaces gráficas há possibilidade de usar a biblioteca IUP conforme pode ser visto neste link https://github.com/lispnik/iup.


Livros 

 

Lisp em Python

LisPy Implementação de Lisp com a linguagem Python  https://norvig.com/lispy.html. Texto e vídeo do Ramalho detalhando implementação,

"O Lisp de Norvig" por Ramalho

Detalhes e explicações de implementação do interpretador de Lisp em Python com Ramalho, em uma Live para o canal do Eduardo Mendes (Dunossauro) abaixo.


Nenhum comentário:

Postar um comentário