33

関数型プログラミングを実際に学ぶためにバグを見つけました。そこで、私の次の自習プロジェクトは、コンピュータ プログラムの構造と解釈に取り組むことです。残念ながら、私は大学で CS を専攻していなかったので、Lisp を学んだことはありません。

SICP はプログラミングのためのツールを強調していませんが、演習を行うには、使用する Lisp に似た言語を選択する必要があります。スキームのいくつかの実装は、抵抗が最も少ない方法のようです。一方、Common LispClojureを使用した人もいます。Common Lisp や Clojure はプロダクション コードで使用される可能性が高く、私の履歴書には少し適しているように思えます。ところで、私は言語を学ぶこと自体が価値があるという議論を十分に理解していますが、履歴書に役立つ言語を学ぶことは依然として有益です. 私は資本家であり、自分の学習については学者です。

SICP を独学しなければならないとしたら、どの言語を選びますか?またその理由は何ですか? 理想的には、JVM で実行できる言語を使用したいと考えています。確かに、REPL が bash と emacs で動作する言語を使用できます。

追記:Schemeを使わずにSICPを読んでみた人はいますか?もしそうなら、あなたの経験はどのようなものでしたか?

4

18 に答える 18

41

スキームを使用します。現存する言語の中で最も単純で簡単な言語の 1 つであり、SICP を理解するのに十分な学習時間はほとんどありません。SICP を理解すると、その概念があらゆる言語にどのように適用されるかがわかります。

于 2008-10-27T03:53:40.570 に答える
22

DrSchemeを使用します。他の人が言っているように、Scheme は単純な言語であり、DrScheme は多くのサポートと平凡から優れたドキュメントを備えた、それを使用するのに最適な環境です。

于 2008-10-27T04:08:25.160 に答える
9

直接的な答えではありませんが、この情報がSICPを介して作業するすべての人に役立つことを期待しています。こちらのビデオを必ずご覧ください。

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

それぞれ1時間に20回のエピソードがあります。それらは、1986年にヒューレットパッカードの従業員のためにアベルソンとサスマンによって提示されました。私はそれらをiPodに置き、通勤中にそれらを見ました。魅力的な。

また、本の全文はhttp://mitpress.mit.edu/sicp/からオンラインで入手できます。

于 2008-10-27T12:24:22.537 に答える
5

人を雇う者として、履歴書にSchemeがあることは良いことだと言いたい。履歴書にScheme、SML、Ocaml、またはHaskellが記載されている場合は、あなたが非常に多才なプログラマーであり、かなりの思想家であることを示しています。

とはいえ、関数型プログラミングをしようとしているのなら、代わりに Haskell を試してみませんか? スキームはマルチパラダイムであり、オブジェクト指向、機能、ストリームベース、または太陽の下にあるその他のものにすることができます。これにより、新しいプログラミング スタイルやパラダイムを試すのは素晴らしいことですが、目標が厳密に機能的なものである場合は、問題になる可能性があります。(機能しないコードを書き、それを認識しないことになります。)

于 2008-10-28T03:00:30.850 に答える
4

私はあなたがSchemeを使うべきだということに同意します。ただし、Common Lisp や Clojure をどうしても使いたくない場合は、後者を選びます。Scheme と Clojure はどちらも Lisp-1 であるため、本のコードは 2 つの間でより一致します (末尾呼び出しを除きますが、補正方法を理解していれば問題ありません)。Common Lisp は Lisp-2 であり、おそらく SICP が教えようとしているものの美しさを覆い隠してしまうでしょう。

于 2008-10-27T12:07:21.230 に答える
3

本から真の価値を引き出すには、Schemeを使用する必要があります。スキームのどの実装は、現在の環境によって異なります。

Windows-Dr Scheme(PLTスキーム) -http : //download.plt-scheme.org/ Linux-これがリモートアカウントの場合-MZScheme(PLTScheme)(http://download.plt-scheme.org/)それ以外の場合、これがLinuxのローカルインスタンスである場合は、DrSchemeを使用することをお勧めします。

于 2008-10-27T04:59:33.730 に答える
3

Clojure は、あなたがやりたいことにぴったりだと思います。データ構造が不変であるため、Scheme よりもはるかに機能的であり、JVM 上で実行されるため非常に便利です。ただし、本のコードを理解できるようになるためには、Scheme を学習することになることに注意してください。

于 2008-10-27T06:42:33.787 に答える
3

この本のコードはSchemeなので、とにかく読む必要があります-書くこともできます. あなたもそれを好きかもしれません!

于 2008-10-27T04:03:44.250 に答える
2

関数型プログラミングを実際に学ぶためにバグを見つけました。

私が聞いたところによると、SICPは単なる関数型プログラミング以上のものです。

于 2008-10-27T04:46:47.860 に答える
2

警告:私は本全体を読んでいません

例はクロージャと継続に依存しているため、これらの機能の両方を備えた言語を使用する方が適切です。そうでない場合は、自分で実装する必要があります。

たとえば、Schemeでメタサーキュラーエバリュエーターを作成すると、Schemeがクロージャと継続を提供するという事実を活用します。

于 2008-10-27T04:52:08.580 に答える
2

sicpを見たときにluaを使いました

かなりうまくいく

于 2008-10-27T04:55:40.337 に答える
2

Scheme 以外のものを使用することもできますが、不必要に余分な作業を追加することになり、本の内容を完全に理解できなくなる可能性があります。SICP はプログラミングの入門書でした。これは、コンピューター サイエンスのより深いトピックへの足がかりです。Scheme から CL や Clojure への「変換」に行き詰まると、細かい点がわかりにくくなる可能性があります。SICP は、プログラミングとは何かを理解するための真のゲートウェイであるため、これは残念なことです。

Learning Scheme は (特に CL と Clojure の両方と比較すると) 本当に単純明快であり、実際、本と同様に入門コースも、学生がまだそれを知らないことを前提としています。CL と Clojure は、目の前のタスクに比べてかなりの重荷を背負っています。

于 2011-04-23T17:48:09.320 に答える
2

スキーム以外のものを使用してください。

スキーム以外のものを使用している間は、もっと考えて、例を再入力する誘惑を避けることができます。それは良いことです。

もちろん、それは Lisp-1 の意味で十分に類似している必要があるため、clojure と arc は問題ありません。

于 2008-10-27T12:17:29.167 に答える
2

私は自習のためにスキームを使用しました。SICP から学ぶ最善の方法は、すべての演習を厳格に行うことです。

スキームにはGnu guileを使用しました。

于 2009-05-08T08:43:31.230 に答える
1

CommonLispとClojureを使用した人の話を聞きます。

最もやる気のある言語を使用する必要がありますが、SICPを介して作業する人々の99%がSchemeを使用する予定です。

于 2008-10-27T04:53:31.090 に答える
1

今年の初めに (ほとんどの) 作業を行い、Common Lisp を使用しました。単に、Scheme を利用できなかったからです (聞かないでください)。

すでに述べたように、Scheme は Lisp-1 言語ですが、Common Lisp は Lisp-2 言語です。言語間には十分な違いがあり、本のコードを翻訳することを慎重に検討したことを意味します。

于 2008-10-28T03:28:38.127 に答える
0

しかし、私の履歴書に役立つ言語を学ぶことは、それでもメリットがあります。

VB6またはCOBOLを使用してみてください。そうすると、課金作業がたくさん発生します。

于 2008-10-27T04:48:14.847 に答える
0

私はSchemeが自然な選択だと思います(SICPの「ネイティブ」言語であるため)

しかし、SICP の真価は特定の言語の仕組みではなく概念に由来するため、Lisp ライクな言語で試してみることは価値のある学習課題になると思います。私は Clojure でいくつかの演習を個人的に試しましたが、それらはすべてかなりうまく変換されました。

興味のある方のために、SICP の Clojure 翻訳を作成する進行中のプロジェクトがあります。

于 2011-04-22T22:09:03.020 に答える