LISP - Estrutura do Programa
As expressões LISP são chamadas de expressões simbólicas ou expressões S. As s-expressões são compostas por três objetos válidos, átomos, listas e strings.
Qualquer expressão s é um programa válido.
Os programas LISP são executados em um interpreter ou como compiled code.
O interpretador verifica o código-fonte em um loop repetido, também chamado de loop de leitura-avaliação-impressão (REPL). Ele lê o código do programa, avalia-o e imprime os valores retornados pelo programa.
Um programa simples
Vamos escrever uma expressão s para encontrar a soma dos três números 7, 9 e 11. Para fazer isso, podemos digitar no prompt do interpretador.
(+ 7 9 11)
LISP retorna o resultado -
27
Se você gostaria de executar o mesmo programa como um código compilado, crie um arquivo de código-fonte LISP chamado myprog.lisp e digite o código a seguir nele.
(write (+ 7 9 11))
Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -
27
LISP usa notação de prefixo
Você deve ter notado que o LISP usa prefix notation.
No programa acima, o símbolo + funciona como o nome da função para o processo de soma dos números.
Na notação de prefixo, os operadores são escritos antes de seus operandos. Por exemplo, a expressão,
a * ( b + c ) / d
será escrito como -
(/ (* a (+ b c) ) d)
Vamos dar outro exemplo, vamos escrever o código para converter a temperatura Fahrenheit de 60 o F para a escala centígrada -
A expressão matemática para esta conversão será -
(60 * 9 / 5) + 32
Crie um arquivo de código-fonte denominado main.lisp e digite o seguinte código nele.
(write(+ (* (/ 9 5) 60) 32))
Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -
140
Avaliação de programas LISP
A avaliação dos programas LISP tem duas partes -
Tradução do texto do programa em objetos Lisp por um programa leitor
Implementação da semântica da linguagem em termos desses objetos por um programa avaliador
O processo de avaliação segue as seguintes etapas -
O leitor traduz as sequências de caracteres para objetos LISP ou s-expressions.
O avaliador define a sintaxe do Lisp formsque são construídos a partir de expressões S. Este segundo nível de avaliação define uma sintaxe que determina quals-expressions são formulários LISP.
O avaliador funciona como uma função que assume uma forma LISP válida como argumento e retorna um valor. Esta é a razão pela qual colocamos a expressão LISP entre parênteses, pois estamos enviando toda a expressão / formulário para o avaliador como argumentos.
O programa 'Hello World'
Aprender uma nova linguagem de programação realmente não decola até que você aprenda como cumprimentar o mundo inteiro nessa linguagem, certo!
Portanto, crie um novo arquivo de código-fonte denominado main.lisp e digite o seguinte código nele.
(write-line "Hello World")
(write-line "I am at 'Tutorials Point'! Learning LISP")
Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -
Hello World
I am at 'Tutorials Point'! Learning LISP