私はlispと呼ばれる同じ言語のファミリーの方言であることを知っていますが、違いは何ですか?可能であれば、構文、特性、機能、リソースなどのトピックをカバーする概要を教えてください。
私はlispと呼ばれる同じ言語のファミリーの方言であることを知っていますが、違いは何ですか?可能であれば、構文、特性、機能、リソースなどのトピックをカバーする概要を教えてください。
回答:
それらはすべて共通点がたくさんあります。
(function-name arg1 arg2)
Common Lisp特有の機能:
Clojureの特徴的な機能:
[]
とマップ-ベクトルとマップの一般的な有用性に加えて、これは一般的に読みやすくする革新であると信じている人もいます{}
()
スキームの特徴的な機能:
上記の人々はいくつかのことを逃しました
Common Lispにはベクトルとハッシュテーブルもあります。違いは、Common Lispがベクトルに#()を使用し、ハッシュテーブルに構文を使用しないことです。スキームにはベクトルがあると思います
Common Lispにはリーダーマクロがあり、(Schemeの子孫であるRacketと同様に)新しいブラケットを使用できます。
Common Lispの非衛生的なマクロとは対照的に、SchemeとClojureには衛生的なマクロがあります
すべての言語は近代的であるか、大規模な改修プロジェクトがあります。Common Lispは過去5年間に大規模なライブラリを取得しており(主にQuicklispのおかげです)、Schemeにはいくつかの最新の実装(Racket、Chicken、Chez Schemeなど)があり、Clojureは比較的最近に作成されました
Common LispにはOOシステムが組み込まれていますが、これまで使用してきた他のOOシステムとはかなり異なります。特に、それは強制されていません-あなたはしていない持っている OOコードを記述すること。
言語によって、設計思想は多少異なります。Schemeは、Actorモデルを理解するための最小限の方言として設計されました。それは後に教育学のために使われるようになった。Common Lispは、出現した無数のLisp方言を統合するように設計されました。Clojureは並行性のために設計されました。その結果、Schemeは最小限でエレガント、Common Lispは強力でパラダイムにとらわれない(機能的、OOなど)ものであり、Clojureは関数型プログラミングを支持するという評判を得ています。
GimpはSchemeで書かれています:)
実際、一部の人々がC ++で記述されていると考えるソフトウェアの割り当ては、おそらくLispの傘下で行われたため、束から黄金のリンゴを選ぶのは困難です。C ++が常に人気があるとは限らず、更新の履歴があるため、今日では人気があるようです。世紀の後半では、C ++はマルチスレッド化さえも利用していませんでした。今日、Pythonは、テストされていない役に立たないバグのあるグルーコードのプールです。少し早送りすると、関数型プログラミングの増加が見られます。これは、適応または死ぬようなものです。Javaは、Adapt部分に関する限り、それは正しいと思います。
SchemeはLisp言語を単純化するために設計されました。これは、実際に普及したことを除いて、それが唯一の目的でした。Clojureは、JVMのSchemeを単純化するために似たようなことをしていると思います。これは、他のすべてのJVM言語と同じように、ユーザーエクスペリエンスを向上させるためのものであり、Javaの土地での定型文の記述を単純化するためだけのものです。