お帰りなさい｡
今回は､ 実際に関数型プログラミングのパラダイムで考えることができる便利な関数についてお話したいと思います｡
これらの機能の名称は､ マップフィルターである｡
ジップ
そして､ 減らす｡
これらはとても便利で､ Pythonプログラマーであればたくさん書くことになる一般的な関数です｡
では､ それらを探ってみましょう｡
まずは1つ目､ Mapから｡
また､ Mapを使うことで､ 2倍するコードを簡略化することができます｡
マップは､ 機能として､ ビルトインされた機能として利用できますね｡
ここでは､ 最初のパラメータに関数を与え､ 2番目のパラメータに反復記号を与えていることがわかります｡
ここで何らかのアクションを起こしたいというのが､ 良い考え方だと思います｡
つまり､ 関数と､ それに対してアクションを起こしたいデータです｡
つまり､ 私たちの場合､ 1､ 2､ 3としましょう｡
では､ 私たちはどんなアクションを起こしたいのか｡
1､ 2､ 3
さて､ 2倍したいので､ multiplyとしましょう｡
2人で｡
さて､ まず関数を定義しなければならないので､ これを下にずらさなければなりません｡
そして､ このように実行します｡
だから､ これを印刷するのではなく､ そうしよう｡
プリントする｡
走らせたらこんな感じ｡
このメモリ位置にマップオブジェクトを取得する｡
そして､ MAPはこの記憶の中に作り出したこの物体を自動的に私たちに与えてくれるのです｡
そこで､ 実際に表示するためには､ このようにリストにする必要があるのです｡
だから､ これを実行すると
int'l object is not iterableの行に書いてあるのですが｡
それは､ mapを使えば､ リストへの追加よりもリストの作成の方が不要になるからです｡
マップのいいところは､ 私がデータを与えると､ そのデータがマップに反映されるところです｡
そして､ map関数に必要なのは､ それを返す関数だけです｡
このパート項目は2倍です｡
つまり､ このようなコードをすべて用意するのではなく､ returnと言うだけでいいのです｡
アイテムです｡
2回目｡
そこで､ このパラメータをitemに変更してみましょう｡
そして､ もう少し詳しくコードを見てください｡
だから､ 地図で「おい､ この機能を動かしてくれ」と言うんです｡
2倍してください｡
ここで注目すべきは､ 括弧もつけていないことです｡ なぜなら､ 呼び出す必要がないからです｡
マップは､ 「機能だけ教えてくれれば､ あとは私がなんとかする」と言うだけです｡
だから､ ここでは関数を呼び出していない｡
マップが関数を呼び出してくれるんです｡
こうやってマップを呼ぶと､ おいおい､ となる｡
このメモリーアドレスでこの機能を使い､ このデータを使ってほしい｡
関数型プログラミングのパラダイムを思い出してください｡
その2つを分けて考えています｡
さて､ この関数はインターバルの中の各項目を取り出そうとしています｡
私たちの場合､ 初回アイテムは1､ 2､ 3となります｡
そして､ あとはそのアイテムにどんな効果を与えたいかを返すだけです｡
私たちの場合は､ 2つです｡
このようにすると､ mapは自動的にこの関数を実行し､ イテレート可能なすべての項目をループして､
これを実行するとリストに変換される新しいmapオブジェクトを返します｡
2個で6個分？
さて､ ここからがオモシロイところです｡
そうすると､ マイリストと言って､ 1､ 2､ 3､ と言うんです｡
そして､ こっちのリストを変更したんだ｡
こんな感じ｡
そして､ 最後にマイリストも印刷します｡
実行」をクリックすると
私のリストは変わっていないことがおわかりいただけると思います｡
覚えていますか？
純粋関数とは､ 外界に影響を与えない関数のことです｡
そして､ このウェイマップによって､ まったく新しいリストを作ることができるのです｡
それは私のリストを修正するものではありません｡
つまり､ 私のリストは不変なんですね｡
変えないんです｡
そして､ この関数が行うことは､ map関数がそれを処理し､ 新しいリストを返してくれることだけです｡
しかし､ 私たちは外の世界に影響を与えることはありません｡
この機能には副作用がありません｡
単純に項目と項目を2つずつ掛け合わせるだけですが､ ここから新しいリストを作っています｡
そして､ 同じ入力を与えても､ 毎回同じ出力になるのです｡
とても､ かっこいいです｡
マップは非常に便利です｡ なぜなら､ 反復処理できるものがあれば､ いつでも変更できるからです｡
例えば､ 電子メールやユーザーネームがあるとして､ ユーザーネームをすべて大文字に更新する必要があるとします｡
この場合､ 繰り返し処理を行い､ map関数を使って､ リストにあるユーザー名をすべて大文字に変更することができます｡
MAPは､ プログラミングをする上で､ よく使う関数のひとつになると思います｡
そして､ ここでも関数型プログラミングのパラダイムを使って､ いかにクリーンで素敵なものになっているか､ おわかりいただけると思います｡
次の作品に進みましょう｡
フィルターについて説明します｡
次のページ