質問

関数型プログラミングの概念を理解しようとしています。

私は長年にわたってWebアプリケーションのクライアント側スクリプトにJavascriptを使用してきましたが、プロトタイプを使用すること以外はすべて単純なDOM操作、入力検証などでした。

最近、 Javascriptが関数型プログラミングをサポートする言語の1つであることをよく読んでいます。 / p>

Javascriptに精通しており、Javascriptを使用して関数型プログラミングを学ぶことを好みます。主要な機能概念にもっと集中でき、完全に新しい構文に動揺したり気が散ったりすることはないでしょう。

要約すると、Javascriptは関数型プログラミングの概念を学ぶのに適した選択肢ですか? Javascriptのどの機能が関連しているか、機能プログラミングをサポートしていますか

役に立ちましたか?

解決

JavaScriptはファーストクラスの機能をサポートしています。 関数型プログラミング手法を使用してエレガントなJavaScriptを記述する

他のヒント

高次Javascript は、優れた方法に慣れる方法ですJavaScriptの機能面。また、大きな本に飛び込むことなく足を濡らしたい場合の比較的短い読み物です。

JavaScriptを使用していくつかの関数型プログラミングの概念をすばやく把握できますが、関数型プログラミング言語のようにJavaScriptを一貫して使用することは一般的ではありません。少なくとも明らかに一般的ではありません。 JavaScriptを使用して関数型プログラミングを行う方法を正確に説明するチュートリアルを投稿する人はほとんどいません。Marxidadが指摘したものは実際にはかなりまともな例ですが、その多くは見つかりません。 JavaScriptでクロージャーを使用するときのように、機能的な側面はあまり明らかではありませんが、クロージャーを使用していることに気付きません。

2つの関数を引数として3番目の関数に渡し、最初の2つの関数に関連する戻り値を実行するという考え方は、ほとんどの場合、本格的なコアにのみ表示される高度な手法ですjQueryのようなライブラリ。自己実行の匿名関数などは地に着きましたが、まだ一貫して使用されていません。多くのチュートリアルでは、プロパティとメソッドの作成方法、スコープ、アクセス制御、コンストラクターのプロトタイププロパティの使用方法など、JavaScriptのオブジェクト指向機能に焦点を当てています。正直なところ、関数型プログラミングがあなたの望むものなら、私はこの機能のために厳密に知られている言語を選ぶでしょう。

誰が言ったのか覚えていませんが、javascriptは「Scheme with Algol syntax」と呼ばれています。そのため、Scheme / Lispを学習するために、Javascriptは悪いスタートではありません。ただし、Lispなどの関数型言語は、Haskellなどの純粋な関数型言語とはまったく異なることに注意してください。

「ファーストクラスの関数」とは別に(関数は値であり、変数に割り当てることができることを意味します)、語彙スコープも関数型言語の本質的な部分です。

高次Javascript およびリトルJavascripter は既に言及されています。どちらも優れたテキストです。さらに、 Javascriptでの高次プログラミングの方が簡単に開始できる場合があります。

javascriptはFPをある程度サポートしていますが、直接推奨していません。そのため、ギャップを埋めるために、 Oliver SteeleのFunctional のようなプロジェクトが存在します。 FPの学習にはお勧めしません。代わりにF#を確認してください。

The Little Schemer 。これは再帰に関するかなりスリムな本であり、機能的なスタイルの入門書として適しています。 Schemeに重点を置いていますが、JavaScriptに簡単に適用できます。 http://javascript.crockford.com/をご覧ください。 little.html 。 JavaScriptの開発には非常に役立ちましたが、最後にはかなり注意が必要になります。

Javascriptはマルチパラダイム言語です。関数型言語の概念を学習することが目標の場合は、 OCaml または< a href = "http://www.haskell.org/" rel = "nofollow noreferrer"> Haskell 。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top