Lispから始めるにはどうすればいいですか?[閉まっている]


48

私は何年もプログラミングを行っており、Blubのさまざまな繰り返し(BASIC、アセンブラ、C、C ++、Visual Basic、Java、Rubyは「Blub-ness」の特定の順序ではありません)を学習しています。舌足らずの発音。しかし、私は限られた時間(家族、フルタイムの仕事など)と私の現在のBlub(Java)での快適な幸福を備えたものがたくさんあります。

だから私の質問はこれです、私が本当にLispを学びたい人だとすれば、ウェブ開発におけるLispの優位性示す良い結果を得るための最初のステップは何でしょうか?多分私はその点を見逃しているかもしれませんが、それは私が最初に私のLisp知識の応用を見ることになる方法です。

「方言Aを使用し、IDE Bを使用し、Cページの指示に従い、カウンセラーDを使用してモナドの後に正気を疑う」と考えています。私はここの人々がA、B、C、そしておそらくDの最適な値のセットだと考えているものを知りたいですエキスパート。

さらに詳細を追加するために、MacOS(またはLinux VM)で開発します。Windowsベースのアプローチは必要ありません、ありがとう。

閲覧するだけの人への注意

この質問をしばらく開いたままにして、提案を調査した後にフィードバックを提供できるようにします。もしあなたがブラウジングをしていて、何か追加するものがあると感じたら、してください。あなたのフィードバックを本当に歓迎します。

興味深いリンク

あなたがJavaのバックグラウンドからLispに来ていると仮定すると、このリンクのセットはすぐにあなたを始めるでしょう。

  1. IntellijのLa Clojureプラグインを使用してLispを統合する(ビデオキャスト)
  2. Web用のLisp
  3. Practical Common Lispのオンライン版(c / o Frank Shearar)
  4. Land of Lispが登場(+ (+ very quirky) game based)ましたが、とても簡単です
  5. MacOSにClojureとSublime 2をインストールする優れた入門ガイド
  6. Clojure in Actionの本を見てください。私のために働いた。

1
Paul Grahamによる「ANSI Common Lisp」および「On Lisp」を読んでください。
デュロス

2
Lispロック(私はANSI Common Lispを読んだことがありません)ですが、イントロブックとして、Practical Common Lisp> On Lispがあります。少なくともIMO。(最初にOn Lispを読みましたが、PCLがCLに私を
導いたの

私は現在PCLを読んで楽しんでいると言わざるを得ません-言語の歴史に関する優れた脚注は本当にコミュニティに感触を与えます
ゲイリーロウ

1
Lispへの私の最初の紹介は、有名なコンピュータプログラムの構造と解釈を見ていました。それから、Javaプログラマー向けのRich HickeyのClojureを見ました。これらのビデオを良い紹介としてお勧めします。
-WuHoUnited

回答:


18

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

私は経験から話しています。私はEmacsから始めようとしましたが、言語とエディターを同時に学ばなければならないのは本当にイライラしました(特にEmacsは他のツールとは非常に異なるため)。最終的に、比較的単純なクロスプラットフォームIDE、中央集中型のパッケージリポジトリすばらしいドキュメント特にWeb開発を対象とした中間チュートリアルを含むが付属するPLT Scheme(現在のRacket)を使い始めましLisp完全に理解した後、Emacsに戻り、Practical Common LispXahのElisp Guideを使用してEL / CL を取得しました。。基本的に、私が見るように、Emacsを効果的に使用するにはLispを知る必要があり、CL / Elispで非常に効果的であるためにはEmacsを知る必要があります。つまり、Schemeを選択するか、最初に他のエディター(Common Lispを個人的に使用)でCommon Lispを学習できます。

すでにEmacsを知っているのであれば、そうです、Elispは自然なステップです(ただし、Elispsを最初に知らなくてもEmacsの使用を楽しむ方法は私にはありません)。

YMMVはもちろん、これは私が助けてくれたものです。

現在のブラブはJavaなので、おそらくClojureArmed BearKawaから多くの燃費を得ることができます。私はJavaの男ではなく、自分で試したことはありませんが、Clojureは私が知っている他のLispersから特に強く勧められています。現在のVMとIDEを保持する機能が学習プロセスに役立つ可能性があるようです。


私が始めたとき、私はすでにemacsの基本的な流basicさをいくらか持っていました。Emacsには非常に急な学習曲線があります!
フランクシェラー

+1 Emacsでの以前の経験は素晴らしいものではなかったからです(Thorbjornが指摘したように、Emacsを知りたくてLispを組み込みたいと思うのを止めないので、私の仕事でLispの知識を使うことができます)
ゲイリーロウ

3
@ThorbjørnRavn Andersen-そうでした。二回。それでも、CUAショートカット(Emacsではデフォルトでオフになっています)を常に使用していることに気付きました。最悪の事態は、意図しないコピーと意図したコピー(C-x C-c)でエディターを閉じることでした。私は死ぬまでのEmacsを愛し、そしてその中に生きてかなり多くなりましたが、最初に、あなたの筋肉の記憶のだ戦いの年はあなたを伝えることを認識がC-sありSave、ではないSearch、それがUndoありますC-z。Lispを学ぶつもりの人には、そのような欲求不満はお勧めしません。最初に言語を学び、あなたがそれを愛していることに気付いてから、明確な目標を念頭に置いて手を戦うようにしましょう。
イナイマティ

1
@Inaima、ウェルパワーには価格が付いており、EmacsバインディングはCUAよりも前にあるため、IBMを非難します:)また、Ctrl-C + Ctrl-vはCUAではありません:)

1
@Geoffrey van Wyk-PLTはそもそも素晴らしいものですが、しばらくすると限界があり、ベアリングを手に入れたらCL / Emacsに切り替えることになりました。YMMV。langnostic.blogspot.com/2010/09/…詳細に興味がある場合は、少し前に記事を書きました。LispWorksの質問に関しては。私は、彼らが大規模なチーム(会社がツールを購入する)またはコンサルタント(通常は値札が正当化されるのに十分なものを作る)をターゲットにしていると信じなければなりません。彼らにとってどのように機能するかはわかりませんが、私が選んだアプローチではありません。
イナイマティ

10

さて、SICPを読むことで2羽の鳥にぶつかることができます; 1つはLISPを学んでいます(つまり、スキームはLispの方言です)。


1
リンクの+1-クイックスキャンは、そのアプローチが非常に詳細であるが、アプローチがかなり乾燥している(アカデミックに読まれている)ことを示しているようです。私は、テキストを読むときに「専門家の声」が伝わるのが大好きですが、全体的には良い参考になるようです。
ゲイリーロウ

10

Conrad Barskiには、LispでのSPELのキャストと呼ばれる素晴らしいチュートリアルがあります(SPELはマクロの頭字語です)。単純なアドベンチャータイプのゲームを作成し、Lispマクロに直接ジャンプします。彼は入門書にも取り組んでおり、現在次の場所で入手できます。

一度に1ゲームずつLispをプログラムする方法を学びます。

そして、目次から:

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

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

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


8

この言語の基本的な入門書として、Peter SeibelのPractical Common Lispを読んでください。この本は素晴らしい。

emacsとSLIMEのセットアップは、初心者にとっては難しい場合があります。「トリック」は、OSによって大きさが異なります。いつものように、Windowsはスティックの短い端を取得しますが、人々は難しい部分を行ってそれ書き上げました(SBCL、Emacs、SLIME)。

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

OS固有の編集:MCLIDEは開始するのに適した場所です。私はそれをインストールしましたが、実際にそれを使用する機会がなかったので、私はそれについて有用なことを言うことができません。確かに面白いですね!

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


6

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

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

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

気づかなかったら、Webスタック全体を取り上げただけで、すべてClojureで書かれています。

Clojureは、Common Lispよりも使いやすく、Schemeよりもはるかに優れた機能セット/ライブラリサポートを備えています。

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

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

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

本を読み始めたい場合は、Stuart HallowayとAaron BedraによるProgramming Clojureをお勧めします。第2版​​はPragProgからリリースされたばかりなので、最新版です。

ハッピーリスピング!



5

別のコメンテーターInaimathiが数日前にこの本を推薦しました:The Little Schemer

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

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

NB。 プログラマーコンピテンシーマトリックスは、実際に、探すべきもののコンピテンシーのトップレベルでこの本に言及しています。(書籍セクションを参照)


4

Lispの使用を開始するのに非常に便利な場所は、Emacsエディター内です。Emacsエディターを使用して、あらゆるものを再定義できます。'e'キーに日付の時刻を挿入するには、小さなLispスニペットを記述して文字列を生成し、eキーにバインドします。できた

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


「学んだことを使う」というアドバイスに+1。私は本業のIntellijの前身ですが、非常に限られたソフトウェア環境でemacsに足を乗せることができるかもしれません。
ゲイリーロウ

3

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

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

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


2

私の机の近くANSI Common Lispのコピーがあります。私は数年ごとにそれを拾い上げ、いくつかの章を通過し、それからいくつかのエクササイズにこだわると、優先順位リストから外れます。それはおそらく本よりも私についてもっと多くを語っています。本は完全に有能なようです...


この質問への回答とコメントを読んで、より高い目標に向かって努力するきっかけになるかもしれません。PCLリンクで亀裂を持って、あなたは...どう思うかを教えて
ゲイリー・ロウ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.