MC336 - Programação Funcional

Criada: 2006-07-28
Modificada por último: 2022-01-28
Links importantes
Campeonatos Gerenciador Ger. suíço (em breve) Modelo p/ jogador LISP - Wiki
CLISP CMUCL Manual Common Lisp Sudoku - Wiki Treine Sudoku!

A linguagem escolhida para esta seção do curso é LISP.

Usaremos a implementação CLISP. Ou talvez CMUCL. Não sei ainda qual delas, ambas são igualmente adequadas para os propósitos da disciplina.

Manual online do padrão Common Lisp. Se estiver fora do ar, tente este.

Livro texto: Demorei uma hora e meia na Internet, mas enfim encontrei um excelente livro: Practical Common Lisp, de Paul Seibel, Apress, 2005. Texto integral na Internet. Infelizmente, não tem exercícios. Estamos buscando alguns.

Quase cem exercícios Lisp.

Gerenciador versao inicial. Para usá-lo, faça:

* (load "camp")
* (campeonato '(raXXXXXX raXXXXXX-1))

Seu jogador deve iniciar-se com as seguintes linhas:

(cl:defpackage "RAXXXXXX-V7" (:use "COMMON-LISP"))
(in-package "RAXXXXXX-V7")

Você deve escrever as funções manda-probl e resolve. Observe que em Lisp se usa tracinho em lugar de underscore. A primeira não tem argumentos, e retorna uma lista com dois elementos: um problema e uma solução para ele. A segunda recebe um problema e retorna uma solução para ele. Problemas e soluções são ambos codificados como listas de 81 dígitos. Na solução, os dígitos vão de 1 a 9. No problema, vão de 0 a 9, sendo que 0 indica espaço a ser preenchido.

Veja os campeonatos de treinamento.


MC336 Home

© 2006 João Meidanis