Qual é a melhor maneira de aprender LISP? [fechadas]

167

Estou programando em Python, PHP, Java e C há alguns anos, e acabei de ler Hackers e Painters, então adoraria tentar o LISP!

Entendo que é totalmente diferente do que sei e que não será fácil. Também acho que (por favor, corrija-me se estiver errado), há muito menos comunidade e desenvolvimento em torno do LISP. Então, minha pergunta é: qual é a melhor maneira de aprender LISP?

Eu não me importaria de comprar livros ou investir algum tempo. Eu só não quero que seja desperdiçado.

A idéia "final" seria usar o LISP para desenvolvimento web, e eu sei que isso não é tão comum, então ... Eu sei que é bom planejar meu aprendizado antes de escolher o primeiro livro ou tutorial e gastar muito tempo em algo que pode não ser seja o melhor caminho!

Obrigado a todos por suas respostas!

edit: li Practical Common Lisp e foi: ... longo, difícil, interessante e definitivamente me fez rolar no Lisp. Depois disso, li o pequeno esquema, e foi curto, divertido e muito bom para minha programação geral. Portanto, minha recomendação seria ler primeiro o pequeno planejador, depois (são algumas horas e vale a pena) se você decidir que o cisco (ou o esquema ou qualquer outro dialeto) não é o que você procura, você ainda se divertirá muito. nova maneira de pensar sobre recursão!

DFectuoso
fonte
Lisp comum: uma abordagem interativa . Livro antigo (1992) de Stuart Shapiro. Costumava ser apenas árvore morta, mas nos últimos anos está disponível em formato eletrônico .
Kaz
O LISPCraft comum de Robert Wilensky é um livro interessante, se antigo. Eu tenho uma cópia impressa, datada de 1986.
Kaz

Respostas:

114

Tente ler Prático Common Lisp , de Peter Seibel.

Avi
fonte
2
Acho que vi esse livro no meu campus ... então vou buscá-lo agora mesmo!
DFectuoso
2
Não se esqueça do REPL! Não usei o que aprendi sobre o LISP, mas isso me tornou um programador muito melhor em todos os outros idiomas.
Robert K
1
altamente recomendável, este foi o livro que usamos na minha aula de IA para nos ensinar o LISP para nossos projetos.
Helloandre
6
DFectuoso - não é apenas um link sobre o livro, é o livro. Comece a ler o livro online
Aaron
2
Sim, eu sei, mas eu não gosto de ler no monitor ... de qualquer maneira eu escolhi esta como a resposta, porque eu comecei a ler o livro e é bom (eu tenho mais da metade e depois vou ler o pequeno esquema, editarei isso quando Eu termino ambos = 0)
DFectuoso 13/01/09
76

Meu favorito pessoal é Abelson & Sussman Estrutura e Interpretação de Programas de Computador . Ele usa o Scheme, que é um dialeto agradável e limpo do Lisp.

Se você gosta de uma abordagem mais prática, talvez você deva escolher alguma estrutura Lisp para web design (não tenho idéia se existe uma fera assim) e entrar diretamente.

starblue
fonte
1
Paul Graham possui uma estrutura da web chamada lis.
graywh
15
Eu acredito que Arc é seu próprio dialeto do Lisp, não apenas um framework. paulgraham.com/arc.html
michiakig
55

Você pode começar com The Little Schemer como um aquecimento. Não é um livro prático sobre como escrever programas Lisp de produção, mas é um ótimo livro para aprender a pensar no Lisp.

John D. Cook
fonte
Parece uma boa e rápida leitura para começar! TY
DFectuoso
5
Eu tenderia a discordar. Sim, mergulhar nele pode ser a maneira mais rápida de aprender o Lisp, mas também é o mais provável de afastar as pessoas. PCL tem a vantagem de programas experientes podem começar usando Lisp do dia 1, em vez de apenas ser mesmorized
Aaron
43

O MIT disponibilizou todo um curso LISP nos formatos DIVX e MPEG. Eu recomendo.

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

user49978
fonte
3
As palestras são baseadas em seu livro, Estrutura e Interpretação de Programas de Computador.
graywh
7
Achei que os vídeos DivX eram de qualidade semelhante aos vídeos MPEG, apesar de serem bem menores. Economize a largura de banda e o espaço em disco.
Drew Noakes #
2
Para economizar ainda mais espaço em disco, acesse o link e pesquise "estrutura e interpretação" (usando as aspas).
Bill Evans em Mariposa
Estou passando pelos vídeos do SICP. Qual dialeto eles estão usando? Eles não fazem qualquer menção de dialeto, eles simplesmente chamá-lo de 'LISP' ...
priestc
2
@ Priestc Eu sei que esta pergunta foi feita há 4 anos, mas apenas para deixar claro. Eles estão usando "Scheme".
dptd 5/05
33

Agora existe um livro chamado 'Land of LISP' que ensina programação LISP através da escrita de jogos de texto no estilo dos anos 80. Estou lendo agora, e está muito bem escrito e não se leva muito a sério, o que eu gosto.

fbl
fonte
23

Existem várias opções aqui. Primeiro de tudo, Scheme e Common Lisp são bastante diferentes de maneiras bastante profundas (como o escopo); você deve escolher um para começar e ficar com ele por um tempo . Sou fã do Common Lisp, mas essa pode ser uma daquelas questões religiosas do vi-vs-EMACS.

Para Scheme, vá para a linguagem de programação de esquema de Kent Dybvig , seguida pelo SICP.

Para o Common Lisp, bem como o prático Common Lisp, eu recomendaria o Successful Lisp de David Lamkins . O Lisp bem sucedido também está disponível online gratuitamente .

Depois disso, veja Lisp in Small Pieces da Queinnec e Norvig's Lisp no livro AI .

Marty Hall tem uma boa lista na Johns Hopkins.

Atualizado : não pretendo cumpri-lo para sempre, apenas que tentar aprender os dois ao mesmo tempo seria confuso.

Charlie Martin
fonte
19

Pegue a terra de Lisp por Conrad Barski. É uma introdução divertida e cheia à programação Lisp usando desenhos e jogos.

Ashwin Nanjappa
fonte
17

Eu recomendaria o Project Euler como uma excelente fonte de pequenos problemas que você pode usar para aprender qualquer nova linguagem de programação.

JesperE
fonte
1
Im allready um bom participante da Euler Projeto então sim, o tempo eu passar lá estará praticando LISP (uma vez que eu aprender a fazer um par de coisas)
DFectuoso
9

Ansi Common Lisp de Paul Graham é um bom livro.

Eu acho que pode estar esgotado, então sua melhor aposta é obtê-lo via Amazon. Eu recebi o livro para uma aula de "Processamento de linguagem natural" que fiz no segundo ano da faculdade. Tivemos que escrever os projetos de programação no LISP e, portanto, eu precisava aprender o Lisp rapidamente.

O livro me ajudou um pouco.

Scott Wisniewski
fonte
8

Uma vez tive um problema. Eu não sabia cuspir. Então, eu decidi baixar o LISP em uma caixa.

Então me deparei com uma instalação do Emacs sem nenhuma ajuda ou documentação.

Então eu tive dois problemas.

adolfojp
fonte
2
O problema aqui é que alguém não falou sobre o tutorial; pressione Control-H, solte-os e pressione T. Isso o levará a um tutorial que fornecerá tudo o que você precisa para começar. Lamento ouvir sobre sua experiência ruim.
31468 JasonFruit
7
+1 por fazer referência à velha piada regex, mas -1 por não ser útil em cima dela. :-P
Michael H.
7

Para alunos sérios, eu recomendaria o PAIP da Norvig. É um excelente recurso para aprender Lisp e AI.

amit
fonte
Em segundo lugar, é um ótimo livro, bem escrito e IMO mais inspirador do que o Common Lisp prático.
9119 Johan Kotlinski
6

Berkeley oferece o CS61a em formato de podcast. Esta é uma introdução à classe CS, baseada no SICP. É uma versão mais moderna do que os vídeos de 1982 que o MIT tem disponível.

Steve Rowe
fonte
6

Estou trabalhando no Lisp agora e encontrei "o livro" para aprender o Lisp. Foi sugerido por Rainer Joswig

O livro é chamado Common Lisp: uma introdução suave à computação simbólica e pode ser baixado como PDF. O autor começa com uma abordagem semelhante à UML do Lisp no primeiro capítulo e gradualmente introduz cada vez mais a sintaxe do Lisp.

Eu também olhei para o cego prático e acho que o autor encobre muitas informações necessárias, mesmo para um programador experiente. Este livro parece não fazer isso (ainda não terminei completamente, mas achei útil o suficiente para sugerir).

mais uma coisa, você precisará de um ambiente para trabalhar. Encontrei o Lisp in a Box para funcionar bem. É executado no Windows e Linux e usa eMacs.

BlueBadger
fonte
5

Fico atraído pelo LISP pelo seu dialeto da JVM - Clojure. Clojure é uma espécie de grande LISP, já que

  • possui "sintaxe simplificada", menos paratênese é necessária, há um conjunto inteligente de coleções de design disponíveis
  • ele é baseado em JVM, para que haja um tempo de execução estável e de baixo desempenho, além de todo o ecossistema Java (bibliotecas, por exemplo, drivers de banco de dados, ferramentas de construção, IDEs) ao nosso alcance
  • Noir é uma boa estrutura da Web, os aplicativos podem ser implementados nos servidores Java e de aplicativos Java

Em outras palavras, o Clojure pode ser usado na produção aqui e agora.

Quando se trata de recursos, existem pelo menos 4 livros e recursos on-line:

Piotr Kochański
fonte
4

Gostei de ler o LISP comum prático e o LISP comum do ANSI .

No LISP parece interessante, mas a US $ 190 parece um pouco caro para um livro.

Ferruccio
fonte
4
"On Lisp" está disponível gratuitamente no site do autor.
user49117
3
Aqui está o link para baixar On Lisp gratuitamente. Link
Andrew-Dufresne
4

Para o desenvolvimento web, você pode querer dar uma olhada no hunchentoot , um servidor web escrito em lisp comum.

Kim Stebel
fonte
Você sabe, é muito triste ver todos os servidores web e frameworks ao redor lisp que são orientados web ... tenho ZERO de design (css ou mesmo estilo em linha
DFectuoso
4

Descobri que trabalhar nos exercícios de "The Little Schemer" realmente ajudou a aprimorar o lado recursivo e de correspondência de padrões do meu pensamento e facilitou consideravelmente o trabalho no XSLT.

Andy Dent
fonte
2

Eu recomendo Introdução suave à computação simbólica ou Lisp comum prático primeiro, com base em suas experiências de programação. Para praticar, uso o Allegro CL 8.2 Free Express Edition no Windows. Acontece praticar muito divertido.

hajovonta
fonte
1

É uma pergunta difícil de responder ... Acho que tudo depende do seu estilo de aprendizagem.

Eu aprendi LISP nas minhas aulas de IA e Expert Systems na faculdade, mas é assim que eu aprendo ... Eu não sou um grande aprendiz de livros, prefiro que alguém me explique isso em sala de aula.

O LISP é definitivamente uma linguagem única e requer uma nova linha de pensamento se você estiver acostumado à programação C, Java e PHP convencional.

Boa sorte para você !


fonte
1

Eu achei que ler o livro SICP realmente me ajudou a aprender. Eu usei o Steel Bank Common Lisp (SBCL) e tive um bom sucesso com ele.

Boa sorte


fonte
Obrigado, vou escolher alguns livros hoje e começar amanhã cedo!
DFectuoso
Observe, porém, que o SBCL é para o Common LISP e o livro é sobre Scheme. Ainda não li completamente, mas acho que ainda pode ser de grande ajuda para aprender o LISP comum. Você só precisa encontrar os equivalentes no Common LISP.
Zelphir Kaltstahl
1

Pegue um balde de (e) e vá para a cidade ..

Chance
fonte
0

Não sei se há algo de especial no Lisp que o torna diferente de aprender qualquer outro idioma. Você só precisa começar a usá-lo e experimentar seus recursos.

Uma opção pode ser tentar um projeto simples .

Outra opção, específica para Lisp, seria escrever uma extensão do Emacs que o ajudasse no seu trabalho regular.

Jon Ericson
fonte
0

Leia estes livros em ordem: Introdução suave à computação simbólica, ANSI Common Lisp, de Paul Graham, e depois passe para o prático Common Lisp. Ou pule a ACL e use-a como referência enquanto trabalha no PCL.

Abhijith
fonte