sábado, 19 de novembro de 2011

Lisp - Arrays e loops

Usaremos nossa apostila (Ap.).

Arrays são criadas em Lisp pela função make-array (Ap. 12.1.1) e acessadas pela função aref (Ap. 12.1.2).

Há várias formas de loops em Lisp.  Nesta aula, focaremos apenas em duas delas: dolist e dotimes (Ap. 12.2).

Lisp - Funções para conjuntos

Usaremos nossa apostila (Ap.).

Lisp oferece funções para tratar listas como se fossem conjuntos.  Pode-se fazer união, interseção e várias outras operações de conjuntos.

Em relação a elementos repetidos, estas operações sempore retornam listas sem repetições quando recebem argumentos sem repetições.

sábado, 12 de novembro de 2011

Lisp - Algumas funções pré-definidas

Usaremos nossa apostila (Ap.).

Nesta aula, veremos algumas das principais funções pré-definidas (Ap. cap. 9).  A maioria delas se aplica a listas.

Assim, temos funções para ver se um elemento está numa lista, extrair elementos de listas (dado seu índice), retornar pedaços de listas, saber seu comprimento, revertê-las, construir listas, concatená-las, substituir elementos por outros em toda a estrutura, e até aplicar uma função a cada elemento da lista (retornando uma lista com os resultados).

segunda-feira, 7 de novembro de 2011

Lisp - Funções, macros, condicionais, predicados

Seguimos com a apostila (Ap.).

Nesta aula veremos algumas funções aritméticas (Ap. cap. 6).

A seguir, veremos a forma geral de definir funções e macros (Ap. cap. 7).

Para terminar, veremos em mais detalhe condicionais (Ap. 8.1 e 8.2) e predicados (Ap. 8.3).

Lisp - Recursão

Seguimos com nossa apostila (Ap.).

Veremos incialmente como escrever funções recursivas, com a ajuda do método do quadradão (Ap. 5.1).

A seguir, veremos como recursão pode substituir loops (Ap. 5.2), algo que fazemos também em Prolog.

quinta-feira, 3 de novembro de 2011

Lisp - Símbolos

Continuaremos a usar nossa apostila (Ap.).

De forma simplificadora, podemos dizer que os símbolos em Lisp são as variáveis.

Um símbolo pode ter um valor como dado e, independentemente, um valor como função (Ap. 4.1).  Veremos nesta aula como alterar estes valores (Ap. 4.2), e, no processo, falaremos sobre a avaliação de expressões em Lisp.

Por fim, veremos maneiras de inibir a avaliação, total ou percialmente (Ap. 4.3).

Lisp - Estrutura da linguagem

Continuaremos a usar nossa apostila (Ap.).

Um programa em Lisp consiste na definição de novas funções, para que possam ser usadas no contexto desejado.

Veremos nesta aula a estrutura básica de um programa em Lisp, incluindo a definição de funções (Ap. 3.1), o uso de condicionais (Ap. 3.2) e o uso de variáveis locais (Ap. 3.3).