1. ホーム
  2. javascript

[解決済み] ラムダ言語とは?

2023-03-11 11:33:57

質問

JavaScriptを読んでいます。The Good Parts"を読んでいて、著者はJavaScriptがラムダ言語の中で最初に立ち上げられた言語であることに触れています。

JavaScriptの関数は、(ほとんど)レキシカルスコープを持つファーストクラスオブジェクトです。JavaScriptは最初の ラムダ言語 が主流になりました。JavaScriptは、JavaよりもLispやSchemeと共通点が多い。C言語の皮を被ったLispなのです。そのため、JavaScriptは非常に強力な言語なのです。

ラムダ言語とは何なのか、よくわかりませんでした。また、Java、C、C++、PHPなどの言語とどのように違うのでしょうか?

どのように解決するのですか?

ラムダ言語という言葉を使う人は聞いたことがありませんし、もっともらしい定義といえば、JavaScriptを「最初の."」として除外することくらいしか思いつきません。

とはいえ、私は彼がどちらかを意味するのではないかと思っています。

  • 関数型言語:計算が(おそらく高階の)関数のステートレス合成としてモデル化される(またはされうる)言語のクラスです。LISP、Scheme、ML、Haskell などはよくこのクラスに分類されますが、これらのいくつかはより適切に混合パラダイムまたは関数型オプション言語であると言えます。Javascriptは間違いなく、プログラミングのquot;functional style"を可能にするために必要な機能を含んでいます。
  • 無名関数の作成が可能な言語 ( function の構文で、JavaScriptでは lambda と書かれているため、ラムダ言語と呼ばれることもあります。

両方の用法は、アロンゾ・チャーチによって考案され、関数型プログラミングの基礎となった計算のモデルであるラムダ計算において、関数の抽象化を示すためにギリシャ文字のラムダを使用することに由来しています。

編集:Googleブックスの結果を見てみると---"first to go mainstream"まあ、これは議論の余地がありますね。私は、LISP は少なくともある時点では合理的な主流であったと主張します。JavaScriptのセマンティクスはSchemeに直接触発されたものであり、同様の主張をする他のどの言語よりも多くの読者を獲得していることは確かだ。