Lisp をどのように始めればよいでしょうか?[閉まっている]
https://softwareengineering.stackexchange.com/questions/20586
-
22-10-2019 - |
質問
私は何年もプログラミングをしてきましたが、 Blub のさまざまな反復 (BASIC、アセンブラー、C、C++、Visual Basic、Java、Ruby 順不同、「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 を使い始めると仮定すると、このリンクのセットはすぐに使い始めることができます。
- Intellij の La Clojure プラグインを使用して Lisp を統合する (ビデオキャスト)
- Web 用の Lisp
- オンライン版の 実用的な Common Lisp (c/o フランク・シアラー)
- Lispの国 ある
(+ (+ very quirky) game based)
途中ですが、すべてが非常に簡単になります - MacOS に Clojure と Sublime 2 をインストールする の 素晴らしい 入門ガイド
- 見てください Clojure の動作 本。私のために働きました。
解決
これはおそらくほとんどの人々の推奨事項に反するものですが、すでに知っていない限り、最初からemacsを避けてください。特に、現代のIDES/編集者に慣れている場合。
私は経験から話しています。私はEMACSから始めようとしましたが、同時に言語と編集者を学ばなければならないことは本当にイライラしました(特にEMACSは他のツールとは大きく異なるため)。私はそれをチャックして始めました PLTスキーム(現在のラケット) 比較的単純なクロスプラットフォームIDE、集中化された パッケージリポジトリ と 素晴らしいドキュメント (含む 特にWeb開発を対象とした中間チュートリアル)。 Lispできれいなグリップを取得した後、私はエマックに戻り、エル/CLを拾い上げました。 実用的な一般的なLISP と XahのElispガイド. 。基本的に、私が見るように、EMACを効果的に使用する前にLISPを知る必要があり、CL/ELISPで非常に効果的になるためにEMACを知る必要があります。これは、スキームをピックアップするか、最初に他のエディターを介して一般的なLISPを学ぶことができることを意味します(おそらくLispworks個人)。
あなたがすでにemacsを知っているなら、ええエリスプは自然なステップです(ただし、最初にElispを知らずにEmacsの使用を楽しむ方法は私を超えています)。
もちろん、これは私が助けたものです。
あなたの現在のBlubはJavaなので、おそらくあなたは多くの走行距離を得ることができます Clojure, 武装したクマ また 川. 。私は自分で試してみませんでしたが、Javaの男ではありませんでしたが、Clojureは私が知っている他のリスパーから特に強くお勧めします。現在のVMとIDEを維持する能力は、学習プロセスに役立つ可能性があるようです。
他のヒント
さて、あなたは読んで2羽の鳥を打つことができます SICP ; 1つはLISPを学習しています(私はスキームがLISPの方言であることを意味します)、もう1つはプログラムする方法についての素晴らしい洞察です。
コンラッド・バースキー があります すごい 呼ばれるチュートリアル LISPでスペルをキャストします (Spelはマクロの頭字語です)。シンプルなアドベンチャータイプのゲームを作成し、Lispマクロに飛び込みます。彼はまた、現在入手可能な入門書に取り組んでいます。
そして、目次から:
- 独自のWebサーバーを作成し、それを使用してブラウザベースのゲームを再生する
これがWebにとって何を意味するのかわかりません 発達 ただし、LISPを使用しています。 :)
更新 - 誰かが「コンピュータープログラムの構造と解釈」という本に言及したのを見ました。 全体 SICP Hal AbelsonとGerald Jay Sussmanによるビデオ講義. 。本が乾いているのを見つけたかもしれませんが、講義は素晴らしいです。それらはスキームに基づいていますが、リスプでも基本的な概念を非常にうまく理解しています。ダウンロードして見る価値があります。
言語の良い基本的な紹介を得るには、ピーター・セイベルのを読む 実用的な一般的なLISP. 。本は素晴らしい。
EMACSとSLIMEのセットアップは、OSによって「トリッキー」の大きさが異なる初心者にとっては難しい場合があります。いつものように、Windowsはスティックの短い端を取得しますが、人々は困難な部分を作りました 書いた (SBCL、EMACS、SLIME)。
それが途中であると、惑星リスプは 最近の記事 HunchentootとNginxをセットアップする方法を説明します。
OS固有の編集: マクライド 開始するのに適した場所かもしれません。私はそれをインストールしましたが、実際にそれを使用する機会がなかったので、私はそれについて役に立つことは何も言えません。確かに面白そうです!
編集:Eclipseには カスプ プラグインも。
すでに素晴らしい答えがたくさんありますが、Lisp を使った Web 開発に真っ先に取り組みたいと仮定して、私にはさらにいくつかのアイデアがあります。
クロージュア これは、ゴールデンタイムに対応できる本当に優れたフルスタック Web フレームワークを備えていると私が見た初めての Lisp です。
- ノワール は、ルーティング、テンプレートなどを備えた堅牢な Web フレームワークで、Sinatra に似ていますが、もう少し機能が豊富です。基本的に Ruby の Rack に相当する Clojure の Ring を使用します。
- コルマ は、Noir と非常によく連携する SQL 抽象化ライブラリです。
- ピノ は、完全に 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 を切り替えます。あなたのマイレージは異なる場合があります。
活力を与える本が欲しいなら、私はこれをお勧めします Clojure のプログラミング スチュアート・ハロウェイとアーロン・ベドラ著。第2版が出たばかりです プラグプログ, つまり最新です。
ハッピーリスピング!
別のコメンター、 イナイマティ, 、数日前にこの本をお勧めします: 小さなスキーマー
今日それを受け取ったので、長年にわたって取得したプログラミングブックの非常に多額のライブラリを持っている人として、私は1つの章しか読んでいないかもしれませんが、私は間違いなくこれのハードバージョンが必要です。それは、タオテチンのように、言語に関する神の知恵の小さな断片がたくさんあります。それはスキームと言うかもしれませんが、それはもともと「小さなリスパー」と呼ばれていました、それが議論するレベルの言語は、1つとして教えられるほど十分に似ています。
それは高度なテキストではありませんが、言語の原則とそれが本当に何のためにあるのか、それをどのように考えるかをインスタイルする使命があります。私はそれがリスプの優れたスターターになると信じています。
NB。 プログラマーコンピテンシーマトリックス 実際に、この本を探すべきものの能力のトップレベルで言及しています。 (本のセクションを参照)
LISPの使用を開始するのに非常に良い場所は、EMACSエディターの内側にあり、そこでは何でも再定義するために使用できます。 「E」キーが日付を挿入する必要があります。小さなリスプスニペットを書いて文字列を生成し、Eキーにバインドします。終わり。
これにより、日中にプレーンエディターを使用した場合、毎日の設定で学んだことを実際に使用することができます。
Macで開発する場合は、試してみたいと思うかもしれません Clozure Cl. 。 EMACS互換のキーストロークを備えたIDEが付属しており、客観的なCへのブリッジがあり、CoCoAアプリケーションを書き込むことができます。
また、私は実用的な一般的なLISPを読みましたが、見つかりました 成功したリスプ 同様に役立つこともできます。
最後に、あなたの側の忍耐が報われるでしょう。生産性とマイナーな勝利はかなり速くなりますが、大きな勝利にはしばらく時間がかかる場合があります。
のコピーがあります ANSI CommonLisp 私の机のそばにここにいます。私は数年ごとにそれを拾い上げて、いくつかの章を取得し、いくつかのエクササイズに巻き込まれ、優先順位リストを削減します。それはおそらく本よりも私についてあなたにもっと多くを伝えています。この本は完全に有能なようです...