web-dev-qa-db-ja.com

LISPを学ぶ最良の方法は何ですか?

Python、PHP、JavaとCで数年前からプログラミングを行っていますが、HackersとPaintersを読み終えたばかりなので、LISPを試してみたいです!

私が知っていることとは完全に異なること、そしてそれは簡単ではないことを理解しています。また、(間違っている場合は修正してください)LISPの周りのコミュニティと開発がずっと少ないと思います。だから私の質問は次のとおりです。LISPを学ぶための最良の方法は何ですか?

本を買ったり、時間をかけて投資してもかまいません。無駄にしたくないだけです。

「最終的な」アイデアは、Web開発にLISPを使用することです。これはあまり一般的ではないことを知っています。最善の方法です!

回答ありがとうございます!

編集:私はPractical Common LISPを読みました:...長くて、ハードで、面白くて、間違いなくLISPで転がりました。その後、小さなスキームを読みました。私の全体的なプログラミングに適しています。したがって、最初に小さなスキームを読んでから、(数時間とその価値がある)LISP(またはスキームまたは方言)があなたが探しているものではないと判断した場合、私はお勧めです再帰についての新しい考え方!

162
DFectuoso

Practical Common LISP 、Peter Seibelを読んでみてください。

111
Avi

私の個人的なお気に入りは、Abelson&Sussman コンピュータープログラムの構造と解釈 です。 Schemeを使用します。これは、LISPのきれいできれいな方言です。

より実用的なアプローチが好きな場合は、Webデザイン用のLISPフレームワークを選択して(このような獣が存在するかどうかはわかりません)、すぐに飛び込む必要があります。

75
starblue

ウォームアップとして The Little Schemer で始めることをお勧めします。本番LISPプログラムの作成に関する実用的な本ではありませんが、LISPでthinkをどのように学ぶかについては素晴らしい本です。

54
John D. Cook

MITは、DIVXおよびMPEG形式のLISPコース全体を利用可能にしました。強くお勧めします。

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

42
user49978

'Land of LISP' という本が出版されました。私は今それを読んでいます、そしてそれは非常によく書かれていて、私自身が好きなことをあまり真剣に受け止めていません。

32
fbl

ここにはいくつかのオプションがあります。第一に、SchemeとCommon LISPは、かなり深い方法(スコーピングなど)でかなり異なります。開始するものを1つ選択して、しばらくの間そのまま使用する必要があります。私はCommon LISPのファンですが、それはvi-vs-EMACSの宗教的な質問の一つかもしれません。

Schemeの場合、Kent Dybvigの Scheme Programming Language に続いて、SICPを選択します。

Common LISPとPractical Common LISPについては、David Lamkinsの Successful LISP。 Successful LISPは オンラインでも無料で入手可能 をお勧めします。

その後、Queennecによる LISP in Small Pieces 、およびNorvigの AI bookにおけるLISP をご覧ください。

マーティホールには ニースリスト がジョンズホプキンスにあります。

Updated:永遠に固執するつもりはありません。両方を同時に学習しようとすると混乱するだけです。

22
Charlie Martin

LISPの土地 をConrad Barskiがピックアップします。これは、漫画とゲームを使用したLISPプログラミングの楽しい説明です。

19
Ashwin Nanjappa

Project Euler は、小さなプログラミングサイズの問題の優れたソースとして、新しいプログラミング言語を習得するために使用できます。

17
JesperE

Paul GrahamによるAnsi Common LISPは良い本です。

絶版になる可能性があるので、Amazon経由で入手するのが最善の策です。私は大学で2年生をとった「自然言語処理」クラスの本を手に入れました。 LISPでプログラミングプロジェクトを作成する必要があったため、LISPをすばやく習得する必要がありました。

この本は私をかなり助けてくれました。

9

問題が発生しました。 LISPを知りませんでした。そこで、私はLISPをボックスにダウンロードすることにしました。

それから、ヘルプやドキュメントなしでEmacsをインストールしたことに気付きました。

次に、2つの問題がありました。

8
adolfojp

真剣な学習者には、Norvigの [〜#〜] paip [〜#〜] をお勧めします。 LISPとAIの両方を学ぶのに最適なリソースです。

7
amit

Berkeleyは、ポッドキャスト形式で CS61a を提供しています。これは、SICPに基づいたCSクラスの紹介です。これは、1982年のビデオMITが利用できるよりも新しいバージョンです。

6
Steve Rowe

私は今、LISPを使って作業を進めており、LISPを学ぶために「本」に出会っています。 Rainer Joswig によって提案されました

この本は Common LISP:A Gentle Introduction to Symbolic Computation と呼ばれ、PDFとしてダウンロードできます。著者は、最初の章のLISPへのUMLのようなアプローチから始め、徐々に多くのLISP構文を紹介します。

また、実用的なLISPについても見てきましたが、著者は、熟練したプログラマーであっても、必要な多くの情報を詳しく説明していると思います。この本はそれをしているようには見えません(私は完全には終わっていませんが、示唆するのに十分に有用であるとわかりました)。

もう1つ、動作する環境が必要になります。うまく動作するために LISP in a Box が見つかりました。 WindowsおよびLinuxで実行され、eMacを使用します。

6
BlueBadger

JVMの方言であるClojureによってLISPに惹かれました。 Clojureは素晴らしいLISPの一種です。

  • 「単純化された構文」を持ち、パラテンシスが少なくて済むため、利用可能なコレクションのデザインセットが巧妙に用意されています。
  • jVMベースであるため、その下に安定したパフォーマンスの高いランタイムがあり、さらに全体Javaエコシステム(ライブラリ、データベースドライバー、ビルドツール、IDEなど)が手の届くところにあります
  • Noirは優れたWebフレームワークであり、アプリはJava Webおよびアプリケーションサーバーにデプロイできます

言い換えれば、Clojureは今すぐ本番環境で使用できます。

リソースに関しては、少なくとも4冊の本とプランティオンラインリソースがあります。

5

Practical Common LISP および ANSI Common LISP を読んで楽しんだ。

LISPの場合 はおもしろそうですが、190ドルというのは本には少し高いようです。

4
Ferruccio

「The Little Schemer」のエクササイズを通して作業することは、私の思考の再帰的でパターンマッチングの側面を磨くのに非常に役立ち、XSLTでの作業をかなり簡単にしました。

4
Andy Dent

Web開発の場合は、共通のLISPで記述されたWebサーバーである hunchentoot をご覧ください。

4
Kim Stebel

プログラミングの経験に基づいて、シンボリックコンピューティングの穏やかな紹介または実用的な共通LISPを最初にお勧めします。練習には、WindowsでAllegro CL 8.2 Free Express Editionを使用します。練習がとても楽しいものになります。

2
hajovonta

この本を読むのを見つけました [〜#〜] sicp [〜#〜] 本当に勉強に役立ちました。私はSteel Bank Common LISP(SBCL)を使用し、大成功を収めました。

幸運を

1
Brig Lamoreaux

バケツの(と)をつかんで町に行きます。

1
Chance

答えるのは難しい質問の一種です...それはすべてあなたの学習スタイルに依存すると思います。

A.IでLISPを学びました大学のExpert Systemsクラスですが、それが私が学ぶ方法です...私は素晴らしい本の学習者ではありません。クラスの設定で誰かに説明してもらいたいです。

LISPは間違いなくユニークな言語であり、従来のC、Java、PHPプログラミングに慣れている場合は、新しい考え方が必要です。

幸運を祈ります!

1
Scott Vercuski

LISPには、他の言語の学習とは異なる特別なものがあることは知りません。あなたはそれを使い始め、その機能を試してみるだけです。

1つのオプションは、単純な project を試すことです。

LISPに固有のもう1つのオプションは、通常の作業を支援するEmacs拡張機能を作成することです。

0
Jon Ericson

これらの本を順番に読んでください:シンボリック計算の穏やかな紹介、Paul GrahamによるANSI Common LISP、そしてPractical Common LISPに進んでください。または、ACLをスキップして、PCLで作業中に参照として使用します。

0
Abhijith