web-dev-qa-db-ja.com

Lispから始めるにはどうすればよいですか?

私はもう何年もプログラミングをしていて、- Blubのさまざまな反復 (BASIC、アセンブラ、C、C++、Visual Basic、Java、Ruby in no "Blub-ness"の特定の順序)とLISPを学びたいのですが、限られた時間(家族、フルタイムの仕事など)でたくさんの経験があり、現在のBlub(Java)で快適に過ごせます。

だから私の質問はこれです、私が本当にLISPを学びたいと思っているなら、Web開発におけるLISPの優位性を実証する良い結果を得るための最初のステップは何でしょうか?多分私はポイントを逃しているが、それは私が最初に私のLISP知識の適用を見る方法である。

「方言Aを使用し、IDE Bを使用し、Cページの指示に従い、カウンセラーDを使用してモナドの後に正気を問う」と考えています。ここで人々が何を検討しているのか知りたいのですがA、B、C、およびおそらくDの値の最適なセットになります。たとえば、Railsエキスパートになることとは対照的に、そのような強力な言語を学ぶことの相対的なメリットに関するいくつかの議論。

さらに詳細を追加するために、私はMacOS(またはLinux VM)で開発する予定です。おかげで、Windowsベースのアプローチは必要ありません。

閲覧者のみの注意事項

私はこの質問をしばらく開いたままにしておきます。そうすれば、提案を調査できた後に、提案に対するフィードバックを提供することができます。たまたま閲覧していて、何か追加する必要があると感じた場合は、実行してください。私はあなたのフィードバックを本当に歓迎します。

興味深いリンク

Java=バックグラウンドからLISPに来ていると仮定すると、このリンクのセットにより、すぐに始めることができます。

  1. IntellijのLa Clojureプラグインを使用してLISPを統合する( videocast
  2. LISP for the Web
  3. オンライン版 実用的なLISP (c/o Frank Shearar)
  4. LISPの土地 a (+ (+ very quirky) game based)入りますが、とても簡単です
  5. MacOSにClojureとSublime 2をインストール anexcellent入門ガイド
  6. Clojure in Action の本を見てください。私のために働いた。
47
Gary Rowe

これはおそらくほとんどの人の推奨に反しますが、あなたがすでにそれを知らない限り、最初からEmacsを避けてください。特に、最近のIDE /エディターに慣れている場合は。

私は経験から話しています。私はEmacsから始めようとしましたが、言語とエディターを同時に学習する必要があり、本当にイライラしました(特にEmacsは他のツールとは非常に異なるため)。私は結局それをチャックして、 PLTスキーム(現在はラケット) を使い始めました。これは、比較的単純なクロスプラットフォームIDE、集中化された パッケージリポジトリ および すばらしいdocs (含む 特にWeb開発を目的とした中間チュートリアル )。 LISPを完全に理解した後、Emacsに戻ってELF/CLを Practical Common LISP および Xah's Elisp Guide で取得しました。基本的には、私が見ているように、Emacsを効果的に使用するにはLISPを知っておく必要があります。CL/ Elispで非常に効果的にするには、Emacsを知る必要があります。つまり、Schemeを選択するか、最初に他のエディター(おそらくLispWorks個人)を介してCommon LISPを学ぶことができます。

Emacsをすでに知っている場合は、ええとElispが自然なステップです(Elispを知らずにEmacsの使用を楽しむ方法は私を超えています)。

もちろんYMMV、これは私が助けになったものにすぎません。

現在の問題はJavaであるため、おそらく ClojureArmed Bear または Kawa から多くのメリットを得ることができます。 Java男ではないので、私はそれらのいずれも試していませんが、Clojureは特に私が知っている他のLispersから強く推奨されています。あなたの現在のVMおよびIDEは学習プロセスに役立つ場合があります。

18
Inaimathi

さて、あなたは [〜#〜] sicp [〜#〜] を読むことで2羽の鳥を攻撃することができます; 1つはLISPを学習していますprogram.Period !!

Conrad Barski には、greatチュートリアル LISPでのSPELのキャスト (SPELは彼のマクロの頭字語)があります)。シンプルなアドベンチャータイプのゲームを作成し、LISPマクロに直接ジャンプします。彼はまた、次の場所で入手できる入門書にも取り組んでいます。

一度に1つのゲームでLISPをプログラムする方法を学ぶ

そして、目次から:

  • 独自のWebサーバーを作成し、それを使用してブラウザベースのゲームをプレイする

ただし、これがLISPを使用するWeb開発(HTMLページの場合)に何を意味するのかはわかりません。 :)

更新-誰かが「コンピュータプログラムの構造と解釈」という本に言及しているのを見たところ、MITがオンラインになったこと、全体SICP Hal AbelsonとGerald Jay Sussmanによるビデオ講義 。あなたは本が乾いているのを見つけたかもしれませんが、講義は優れています。それらはSchemeベースですが、まだLISPの基本的な概念も非常によく、ダウンロードして見る価値があります。

10
Cyclops

言語の適切な基本的な紹介を取得するには、Peter Seibelの Practical Common LISP をお読みください。その本は素晴らしい。

EmacsとSLIMEの設定は、初心者にとって扱いにくい場合があります。 "tricky"は、OSによって大きさが異なります。いつものように、Windowsは棒の短い端を取得しますが、人々は難しい部分を行い、 それを書き上げました (SBCL、Emacs、SLIME)です。

それが終わったら、Planet LISPはHunchentootとnginxのセットアップ方法を説明する 最近の記事 を参照しました。

OS固有の編集: [〜#〜] mclide [〜#〜] から始めるとよいでしょう。インストールしたのですが、実際に使う機会がなかったので、何も役に立たなかったです。確かに面白いですね!

編集:Eclipseにも Cusp プラグインがあります。

8
Frank Shearar

すでに多くの素晴らしい答えがありますが、LISPを使用してWeb開発に真っ先に飛び込みたいと思っている場合、さらにいくつかのアイデアがあります。

Clojure は、プライムタイムの準備ができている本当に優れたフルスタックWebフレームワークを持っていると私が見た最初のLISPです。

  • Noir は、ルーティング、テンプレートなどを備えた堅牢なWebフレームワークで、Sinatraに似ていますが、機能がもう少し豊富です。基本的にClojureのRuby in Rackに相当するRingを使用します。
  • Korma は、Noirと非常に相性の良いSQL抽象化ライブラリです。
  • Pinot は、完全にClojureScriptで記述されたクライアント側フレームワークであり、次のことを実現します。
  • Clojurescript は、JavascriptをターゲットとするClojureのコンパイラーです。

気づかなかった方のために、私はWebスタック全体をカバーしましたが、それはすべてすべてClojureで記述されています

Clojureは、Common LISPを使い始めるのが少し簡単で、Schemeよりもはるかに優れた機能セット/ライブラリをサポートしています。

Javaバックグラウンドを使用している場合は、JVMで実行できるという追加の利点があります。これにより、Java stdlib全体にアクセスできます必要なときに。

利用可能なドキュメントは、フレームワーク自体と同様に、進行中の作業です。しかし、かなり良いチュートリアルがあります ここにあります

エディターに関する限り... vimに慣れている場合は、SLIMVでvimを使用できます。 emacsが好きなら、emacs/SLIMEでもかまいません。 Clojureに対するEclipseとNetBeansのサポートはかなり優れています(または私が聞いたとおりです)が、通常はTextMateを使用します(ただし、Sublime Text 2はすぐに私のお気に入りのエディターになりました)。より統合された環境を使用せずにLISPのちょっとした魔法を見逃していることはわかっていますが、⌘-Tabキーを押してエディターとREPLを入れ替えることができてうれしいです。あなたのマイレージは異なる場合があります。

本があなたをジャンプスタートさせたいなら、私はスチュアート・ハロウェイとアーロン・ベドラによるProgramming Clojureをお勧めします。第2版​​は PragProg から出たばかりなので、最新版です。

ハッピーリスピング!

6
Jason Lewis

別のコメント投稿者 Inaimathi が数日前にこの本を推奨しました: The Little Schemer

今日それを受け取りました、そして私が長年にわたって獲得したプログラミング本の非常に多額のライブラリを持っている人として、私はたった1つの章を読んだかもしれないと言うことができます、しかし私は間違いなくこれのハードバック版が必要になります。タオテチンのように、言語に関する神の知恵の小さな断片がたくさんあります。それはSchemeと言うかもしれませんが、それはもともと「The Little LISPer」と呼ばれていました、それが議論するレベルの言語は1つとして教えるのに十分似ています。

これは高度なテキストではありませんが、言語の原則と、それが実際に何のためにあるのか、どのように考えるのかを説明する使命があります。 LISPの優れたスターターになると思います。

NB。Programmer Competency Matrix は、この本について、探すべきことの最上位レベルの能力について実際に言及しています。 (本のセクションを参照)

5
Orbling

LISPの使用を開始するのに非常に適した場所は、Emacsエディター内にあります。ここでは、ほとんど何でも再定義できます。 'e'キーで日付の時刻を挿入したい場合は、小さなLISPスニペットを記述して文字列を生成し、eキーにバインドします。できました。

これにより、日中に普通のエディターを使用した場合でも、毎日の設定で学習した内容を実際に使用することができます。

4
user1249

Macで開発する場合は、 Clozure CL を試してみてください。 IDEにはEmacs互換のキーストロークがあり、Objective Cへのブリッジがあるので、Cocoaアプリケーションを作成できます。

また、Practical Common LISPを読みましたが、 Successful LISP も役立つことがわかりました。

最後に、あなたの側のいくつかの忍耐が報われます。生産性とマイナーな勝利はすぐにやって来るでしょうが、大きな勝利にはしばらく時間がかかるかもしれません。

3
Larry Coleman

ANSI Common LISPのコピーが机のそばにあります。私は2、3年ごとにそれを拾い上げ、2、3の章を経て、2、3の演習に行き詰まり、優先リストから抜け落ちます。それは多分本よりも私についてあなたに多くを伝えます。本は完全に有能であるようです...

2
glenatron