[解決済み] Clojure、Scheme/Racket、Common Lispの違いは何ですか?
2022-06-23 05:31:58
質問
lispという同じ系列の言語の方言であることは知っていますが、具体的にどのような違いがあるのでしょうか。可能であれば、構文、特徴、機能、リソースなどのトピックを網羅した概要を教えていただけないでしょうか。
どのように解決するのですか?
共通点が多いですね。
- 動的な言語
- 強い型付け
- コンパイル済み
-
Lispスタイルの構文、つまりコードはLispのデータ構造(フォーム)として書かれ、最も一般的なパターンは次のような関数呼び出しです。
(function-name arg1 arg2)
- コードをデータとして扱い、実行時に任意のコードを生成できる強力なマクロ システム (新しい構文で言語を拡張したり、DSL を作成したりするためによく使用されます)
- 他のパラダイムに対応する能力を持つが、多くの場合、関数型プログラミングスタイルで使用される
- REPLによるインタラクティブな開発に重点を置いている (つまり、コードの実行中のインスタンスでインタラクティブに開発する)
Common Lispの特徴的な機能。
- 強力なOOPサブシステム( Common Lispオブジェクトシステム )
- おそらく最高のコンパイラ(Common Lispが最も高速なLispであることは http://benchmarksgame.alioth.debian.org/u64q/which-programs-are-fastest.html によれば最速の Lisp です。)
Clojureの特徴的な機能。
- あらゆるJavaライブラリを直接利用できるため、最大のライブラリ・エコシステム
-
ベクター
[]
とマップ{}
に加えて、標準的に使用されるリスト()
- は、ベクトルやマップの一般的な有用性に加えて、一般的に読みやすくするための革新的な技術であると考える人もいます。 - Haskell に多少影響を受けた、不変性と遅延のある関数型プログラミングがより強調されています。
- 言語レベルでのソフトウェアトランザクションメモリによってサポートされる強力な並行処理能力 (一見の価値あり。 http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey )
スキームの特徴
- 最もシンプルで学習しやすいLispと言えるでしょう
- Hygienic macros ( http://en.wikipedia.org/wiki/Hygienic_macro ) - マクロ展開における偶発的なシンボル捕捉の問題をエレガントに回避します。
関連
-
[解決済み] clojureの "let "の例を理解しようとすること
-
[解決済み】ClojureでWebアプリケーションを作るには?[クローズド]
-
[解決済み] REPLでclojureファイルを再読み込みする方法
-
[解決済み] useとrequireの違い
-
[解決済み] Lispに関するPaul Grahamの指摘を説明してください [closed].
-
[解決済み] clojureプロトコルの簡単な説明
-
[解決済み] ClojureでStringを数値に変換するにはどうしたらいいですか?
-
[解決済み] Clojure、Scheme/Racket、Common Lispの違いは何ですか?
-
[解決済み] Clojure: リデュース vs. アプライ
-
[解決済み] Clojureのdoseqとforの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] clojureの "let "の例を理解しようとすること
-
[解決済み】ClojureでWebアプリケーションを作るには?[クローズド]
-
[解決済み】RacketはSchemeとどう違うのですか?
-
[解決済み] REPLでclojureファイルを再読み込みする方法
-
[解決済み] useとrequireの違い
-
[解決済み] 実社会で活躍するLisp【クローズド
-
[解決済み] Lispに関するPaul Grahamの指摘を説明してください [closed].
-
[解決済み] clojureプロトコルの簡単な説明
-
[解決済み] Clojure CoreやContribでZip関数に相当するものはありますか?
-
[解決済み] Clojure: リデュース vs. アプライ