サーチ…


前書き

関数型プログラミングは、問題を一連の関数に分解します。理想的には、関数は入力のみを受け取り、出力を生成するだけで、与えられた入力に対して生成される出力に影響を与える内部状態はありません。以下は、ラムダ、マップ、リダクションなどの多くの言語に共通する機能テクニックです。

ラムダ関数

ラムダで定義された匿名のインライン関数。ラムダのパラメータは、コロンの左側に定義されています。関数本体はコロンの右側に定義されています。関数本体の実行結果は(暗黙的に)返されます。

s=lambda x:x*x
s(2)    =>4

地図機能

Mapは関数とアイテムのコレクションを取ります。新しい空のコレクションを作成し、元のコレクションの各アイテムに対して関数を実行し、各コレクションの戻り値を新しいコレクションに挿入します。新しいコレクションを返します。

これは、名前のリストを取り、それらの名前の長さのリストを返す単純なマップです。

name_lengths = map(len, ["Mary", "Isla", "Sam"])
print(name_lengths)    =>[4, 4, 3]

機能を減らす

Reduceは関数とアイテムのコレクションを取ります。アイテムを結合して作成された値を返します。

これは単純な削減です。コレクション内のすべてのアイテムの合計を返します。

total = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])
print(total)    =>10

フィルター機能

Filterは関数とコレクションを取ります。それは、関数がTrueを返すすべてのアイテムのコレクションを返します。

arr=[1,2,3,4,5,6]
[i for i in filter(lambda x:x>4,arr)]    # outputs[5,6]


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow