Haskellの後に学ぶべき言語は何ですか?[閉まっている]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善して再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 9年前に閉鎖されました。 ロックされています。この質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答ややり取りは受け付けていません。 私の最初のプログラミング言語として、Haskellを学ぶことにしました。私は分析哲学を専攻しており、Haskellを使用すると、自然言語解析用のトランスデューサー、定理証明者、通訳など、関心のあるプログラムをすばやく正確に作成できました。プログラミングを始めて2か月半しか経っていませんが、Haskellのセマンティクスと構文は、従来の命令型言語よりもはるかに簡単に習得でき、その構成の大部分に(今は)快適に感じることができました。 Haskellでのプログラミングは魔術のようなものですが、プログラミングの知識を広げたいと思います。学ぶために新しいプログラミング言語を選びたいのですが、任意の言語を選んでドロップして繰り返す時間がありません。それで、私が探している言語のタイプについてのいくつかの規定とともに、ここで質問をするつもりでした。主観的なものもあれば、Haskellからの移行を容易にすることを目的としたものもあります。 ストロングタイプシステム。Haskellでのプログラミングの私のお気に入りの部分の1つは、型宣言を書くことです。これは、個々の機能とプログラム全体との関係についての私の考えを構造化するのに役立ちます。また、私のプログラムの正しさについての非公式な推論も容易になります。私は効率ではなく、正確さに関心があります。 反復ではなく再帰に重点を置きます。私はHaskellで反復構造を使用していますが、それらを再帰的に実装しています。ただし、特にコンビネータやマップ、フォールド、バインドなどの高階関数を使用する場合は、複雑な反復手順よりも再帰関数の構造を理解する方がはるかに簡単です。 学ぶことはやりがいがあります。Haskellは働きがいのある言語です。カントを読むのと少し似ています。しかし、数年前のCでの私の経験はそうではありませんでした。私はCを探していません。言語は概念的に興味深いパラダイムを強制する必要がありますが、私の完全に主観的な意見では、Cのようなものはそうではありません。 答えを比較検討する:もちろん、これらは単なるメモです。整形式の回答をいただいた皆様に返信したいと思います。あなたはとても役に立ちました。 1)いくつかの回答は、再帰を強調する強力で静的に型付けされた言語が別の関数型言語を意味することを示しました。私はHaskellと強力に協力し続けたいと思いますが、camccannとlarsmansは、別のそのような言語は「移行を容易にしすぎる」と正しく指摘しました。CamlでHaskellを書くつもりはないので、これらのコメントは非常に役に立ちました!証明アシスタントのうち、CoqとAgdaはどちらも面白そうです。特に、Coqは、建設的論理と形式型理論への確かな紹介を提供します。私は一次述語と様相論理(メンデルソン、エンダートン、ヒンマンの一部)に少し時間を費やしたので、おそらくCoqをとても楽しんでいたでしょう。 2)他の人はLispを強く支持しました(Common Lisp、Scheme、Clojure)。私が集まるところでは、Common LispのとSchemeの両方が(優れた入門資料持つLispのオンと推論スキーマー、SICPを)。SICPの資料により、私はスキームに傾倒します。特に、Scheme through SICPは、さまざまな評価戦略、怠惰の実装、および継続、インタプリタ、記号計算などのトピックに焦点を当てる機会をカバーします。最後に、他の人が指摘しているように、Lispのコード/データの扱いはまったく新しいものになるでしょう。したがって、私はオプション(2)であるLispに大きく傾いています。 3)第三に、プロローグ。Prologには興味深い資料が豊富にあり、そのプライマリドメインはまさに私が興味を持っているものです。それは単純な構文を持ち、読みやすいです。現時点ではこれ以上コメントすることはできませんが、Prologの概要を読み、いくつかの紹介資料をざっと読んだ後、それは(2)にランク付けされます。そして、Prologのバックトラックは常にHaskellにハッキングされているようです! 4)主流の言語の中で、Pythonが最も興味深いように見えます。Tim Yatesは、言語を非常に魅力的に聞こえるようにします。どうやら、Pythonは1年生のCS専攻に教えられることがよくあります。そのため、概念的に豊富であるか、簡単に習得できます。もっと研究しなければならないでしょう。 お勧めありがとうございます!Lisp(Scheme、Clojure)、Prolog、またはCoqやAgdaのような証明アシスタントが推奨される主な言語のようです。