click below
click below
Normal Size Small Size show me how
LISP
Deck sobre linguagem LISP
Term | Definition |
---|---|
2+3 é escrito | (+ 2 3) |
5*2+1 é escrito | (+ (* 5 2) 1) |
3.14² é escrito | (expt 3.14 2) |
() ou Nil | Lista vazia |
Expressões de Ponto | (parêntese esquerdo;) parêntese direito;Período ou ponto |
Algumas expressões não atômicas são sempre | Entre parênteses, possuindo uma parte esquerda,uma direita e o ponto para delimitar essas partes. Então elas são sempre pares divididos por pontos |
Expressão | Um átomo ou um par de átomos ou um par de expressões. |
Definição recursiva | Uma expressão que é definida em torno de si mesma |
As expressões não atômicas são internamente representadas como uma estrutura de árvore binária | Frequentemente útil para estudar e ter uma visão de representação gráfica dessa estrutura de árvore. |
(A. NIL) | Expressão de um único átomo |
(A. B) | Expressão de um par de átomos |
(B. C)) | Expressão de um par de expressões |
(átomo. NIL) | Uma lista de um átomo é um par pontuado |
Append | Duas Listas podem ser concatenadas juntas para formar uma lista maior |
Length | O comprimento de uma lista é o número de elementos que uma lista possui |
Quote | Esta função devolve o argumento da lista sem o avaliar |
Rest | É o complemento da First, ou seja, ela retorna a lista sem o primeiro elemento |
Nth | Retorna um elemento específico de uma lista onde first é o elemento zero de uma lista. |
Subst | Esta função substitui um elemento da lista por outro |
LIST | Combina todos seus argumentos em uma lista. É usado para criação de listas, |
REVERSE | Inverte o conteúdo de uma lista |
MEMBER | Encontra uma expressão em uma lista a partir de um elemento |
REMOVE | Remove as ocorrências de uma expressão em uma lista |
DELETE | Funciona de maneira analógica a remove, com exceção de que destrói a lista. |
Átomos e listas | Os dois tipos de dados básicos existentes no LISP |
Átomos | São símbolos (que podem ser associados a valores)e números |
Listas | Servem para descrever dados como computações |
Lista | Por definição é uma coleção de valores linearmente ordenados. |
Tipos de listas | Listas de números, listas de caracteres e mesmo lista de listas |
(A B C) | É uma lista com 3 elementos: A, B, C (três átomos). |
(A (B C)) | É uma lista com 2 elementos: A e (B C) (um átomo e uma lista). |
((A) (B) (D)) | É uma lista com 3 elementos: (A), (B), (D) (três listas). |
Símbolo atômico ou átomo | O tipo mais elementar de S-expressão |
O Lisp trabalha com | Inteiros (positivos e negativos, tanto em decimal quanto em octal) e Números em ponto flutuante também são aceitos. |
Átomo literal | É uma string de letras maiúsculas e dígitos decimais de tamanho indefinido, onde o primeiro caractere é uma letra |
<número> | Representa um número na sintaxe usual das linguagens de programação |
<símbolo> | É uma seqüência de caracteres não totalmente numéricos |
cons | É um registro de dois campos |
t e nil | Pode ser representado para verdadeiro ou falso |
A forma mais simples de se imprimir o argumento | |
Binding | Binding é uma atribuição escopada lexicamente |
make-array | Faz um array.Exemplo : (make-array '(3 3)) |
String | Um string é uma seqüência de caracteres entre aspas duplas. LISP representa um string como um array de tamanho variável de caracteres. |
Estruturas | Estruturas LISP são análogas a structs em "C" ou records em PASCAL: |
IF | LISP também provê uma série de forms para execução condicional.Onde o primeiro argumento determina se o segundo ou o terceiro será avaliado. |
loop | A construção de iteração mais simples em LISP é loop: um loop repetidamente executa seu corpo até que ele encontre um form especial do tipo return |
dolist | Uma dolist ata uma variável aos elementos de uma lista na sua ordem e termina quando encontra o fim da lista |
Lambda | Se você somente deseja criar uma função temporária e não deseja perder tempo dando-lhe um nome, lambda é justamente o que você precisa. |
Funcall | Chama seu primeiro argumento com os argumentos restantes como argumentos dest |
Apply | É semelhante a Funcall, exceto que seu argumento final deverá ser uma lista. Os elementos desta lista são tratados como se fossem argumentos adicionais ao Funcall. |