私がとても好きなことの 1 つは、さまざまなプログラミング言語について読むことです。現在、私は Scala を学んでいますが、Groovy、Clojure、Python などに興味がないわけではありません。これらすべての言語には、独自のルック アンド フィールといくつかの特徴的な機能があります。Clojure の場合、これらの設計上の決定の 1 つがわかりません。私の知る限り、Clojure はその関数型パラダイムを非常に重視しており、可能な限り不変の「変数」を使用するよう強制しています。では、値の半分が不変である場合、言語が動的に型付けされるのはなぜでしょうか?
Clojure の Web サイトには次のように書かれています。
何よりもまず、Clojure は動的です。つまり、Clojure プログラムは、コンパイルして実行するだけのものではなく、対話できるものです。
うーん、それは完全に奇妙に聞こえます。プログラムがコンパイルされると、それを変更することはできなくなります。「対話」できることは確かです。それが UI の目的ですが、Web サイトがきちんとした「動的」GUI を意味するわけではありません。
Clojure は動的型付けからどのように恩恵を受けるか
私が言っているのは Clojure の特殊なケースであり、動的型付けの一般的な利点ではありません。
動的型システムは関数型プログラミングの改善にどのように役立ちますか
繰り返しますが、「int a;」をこぼさないことの喜びを知っています。ソース コード全体に影響を与えますが、型推論によって多くの苦痛が軽減されます。したがって、動的型付けが関数型言語の概念をどのようにサポートしているかを知りたいだけです。