javascript_javascript スキルにおける典型的な高階関数アプリケーションの紹介
理由
私はこれまで JavaScript 言語を使用したことがありましたが、結局のところ、それは JavaScript プロジェクトどころか、バックエンドと連携するために書かれたいくつかの散在する「コード スニペット」のためでした。先月この会社に着任したばかりで、私たちのチームは以前のバージョンを改善し、それを超えるという非常に明確な目的を持って、アーキテクチャと実装をゼロから開始しました。これは実際の JavaScript の「プロジェクト」です。もちろん、私たちのチームはサーバー側の責任を負いません。私が本格的に JavaScript でプログラミングを本格的に始めたのもこの頃です。学校では形式手法に興味があり、JavaScript は関数型言語なので、JavaScript を使ってより関数的なものを表現したいと考えていました。
いくつかの関数
これらのメソッドはすべて、JavaScript 1.6 配列の新しいメソッドです。非常に典型的な機能であり、もちろん実用性も非常に高いです。次の関数の定義は JavaScript からのものではありません。
filter: セット Xs (X は型を表し、s はセットを表します) と述語を受け入れます。この述語は X から bool へのマッピング (関数) です。次に、このセットをフィルターし、述語が true である要素のセットを返します。以下は簡単な実装です:
関数フィルター(arr,callback ){
var i,out=[];
for(i=0;i
out.push (arr[i]);
}
return out
}
簡単なテストを追加します:
var arr = [1,2,3,4,5,6,7,8, 9,10];
var Even = function(item){
if(typeof item !== "number") return
return !(item & 1); 🎜>var filtered = filter(arr,even);
console.log(filtered);
結果:
マップ:セット Xs、関数 f を受け入れ、f を使用して Xs セット内の各要素を順番にマップし、セット f x1、f x2、f x3... f xn を返します。実装は次のとおりです。
for(i=0;i
return out
}
コードをコピーします。
コードは次のとおりです。
Reduce の実装
上記の Reduce は、実際にはfold 関数 (fold) です。 X のセットと二項演算子 f を受け入れます。次に、セット内の隣接する 2 つの要素ごとに f が挿入されます。たとえば、fold plus [1,2,3,4] は 1 2 3 4 を意味します。より正確には、「開始要素」は通常、f の先頭の 2 番目のパラメーターとして必要です。たとえば、fold plus [1,2,3,4] は (1 (2 (3 (4 0))) を意味します。実装は次のとおりです:
Copy code
コードは次のとおりです。 x=b,i= 0; else x=arr[0],i=1; for(;i
return x;
コードは次のとおりです:
var arr = [1,2,3,4,5,6,7,8,9,10];
var plus = function(a,b) ){
戻り値
};
結果:
55
この関数は ECMAScript 5 ではreduce と呼ばれますが、関数式では通常、fold と呼ばれます。これは非常に鮮やかな名前です。
まとめ
実は、JavaScript 言語にはループ文があるため、上記の関数関数を実装する際の書き方は機能的ではありません。ループ文がない場合はどうなるでしょうか?次の探索に任せてください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP は広く使用されているサーバーサイド言語であり、多くの Web 開発者が PHP の使用を好む理由の 1 つは、その豊富な関数ライブラリとシンプルで使いやすい関数構文です。関数型プログラミングは、データと動作を適切にカプセル化し、コードをよりモジュール化し、保守とテストを容易にするプログラミング パラダイムです。この記事では、PHPを使った関数型プログラミングの方法を紹介します。関数型プログラミングの基本 関数型プログラミングの中心的な考え方は、関数を第一級市民として扱うことです。関数自体は、変数のように渡したり、返したり、構成したりできます。

Python では、別の関数を引数として受け取る関数、または関数を出力として返す関数を高階関数と呼びます。その機能を見てみましょう - 関数は変数に格納できます。この関数はパラメータとして別の関数に渡すことができます。高階関数はリスト、ハッシュ テーブルなどの形式で保存できます。関数は関数から返すことができます。いくつかの例を見てみましょう - オブジェクトとしての関数 Example の中国語訳は次のとおりです。 Example この例では、これらの関数はオブジェクトとして扱われます。ここでは、関数demo()が変数に割り当てられています - #Creatingafunctiondefdemo(mystr):returnmystr.swapcase()#swappingthecase

高階関数には、map()、filter()、reduce()、lambda 関数、partial() などが含まれます。詳細な紹介: 1. map(): この組み込み関数は、関数と 1 つ以上の反復可能オブジェクトを入力として受け取り、入力関数を反復可能オブジェクトの各要素に適用する反復子を返します。 2. filter():この組み込み関数は、関数と反復可能なオブジェクトを入力として受け取り、入力関数が True などを返す要素を生成する反復子を返します。

PHP アロー関数: 高階関数のネストされた呼び出しを処理する方法、具体的なコード例が必要 はじめに: PHP7.4 バージョンでは、アロー関数 (arrowfunction) の概念が導入されました。高階関数へのネストされた呼び出し。この記事では、アロー関数の基本的な使用法を紹介し、具体的なコード例を通じて高階関数の入れ子になった呼び出しを処理する方法を示します。 1. アロー関数とは何ですか?アロー関数は、PHP7.4バージョンで導入された新機能です。

Python の高階関数の世界の紹介 Python プログラミング スキルを向上させ、より表現力豊かで効率的なコードを生成したい場合は、ここが正しい場所です。 Python の関数は、単なる特殊なコード ブロックではありません。また、移動、転送、さらには動的に生成できる強力なものでもあります。高次関数は、他の関数を処理することでこの汎用性を高めます。この記事では、高階関数の原理について詳しく説明します。最高級のオブジェクトとしてのプロセスの基本を探り、高階関数の実際の例を詳しく調べ、明確で美しいコードを実現するラムダ関数の力を奨励します。関数型プログラミング モデルと、Python で使用する場合のその利点についても説明します。この記事を読むと、高階関数をしっかりと理解し、

Golang 言語の人気と発展に伴い、関数型プログラミングのアイデアを使用しようとする開発者がますます増えています。 Golang の高階関数は関数型プログラミングに大きな利便性をもたらし、実際の開発で広く使用されています。では、Golang における高階関数の応用シナリオにはどのようなものがあるのでしょうか?次にこれを分析していきます。関数のパラメータと戻り値の処理 Golang では、関数を他の関数のパラメータや戻り値として使用できます。これは、関数をパラメータとして別の関数に渡すことができることを意味します。

PHP は広く使用されているサーバーサイド言語であり、多くの Web 開発者が PHP の使用を好む理由の 1 つは、その豊富な関数ライブラリとシンプルで使いやすい関数構文です。関数型プログラミングは、データと動作を適切にカプセル化し、コードをよりモジュール化し、保守とテストを容易にするプログラミング パラダイムです。この記事では、PHPを使った関数型プログラミングの方法を紹介します。関数型プログラミングの基本 関数型プログラミングの中心的な考え方は、関数を第一級市民として扱うことです。関数自体は、変数のように渡したり、返したり、構成したりできます。

高階関数とは Python では非常に便利な関数関数で、別の関数をパラメータとして受け取ることができる関数のことを高階関数と呼びます。
