関数型プログラミング

Toolzの使い方 Functoolz編

今回はToolzの中からFunctoolzを紹介します。 サンプルコードは全て”from toolz.functoolz import *”の様なインポート文を省略しています。 identity(…

Toolzの使い方 Dicttoolz編

今回はToolzの中からDicttoolzを紹介します。Dicttoolzにあるメソッドはどれも使う場面が多そうだと思ったため、全て紹介します。 サンプルコードは全て”from toolz.dicttoolz…

Toolzの使い方 Itertoolz編

今回はToolzのAPIの中からItertoolzの関数をいくつか紹介します。 サンプルコードは”from toolz.itertoolz import *”の様に扱う関数をインポートしてある前提で書いてあります。 イテ…

カリー化とは?

今回は関数型プログラミングの中で頻繁に登場するカリー化というテクニックを紹介します。 カリー化はpartial関数のシンタックスシュガーであるためpartial関数について知っていれば難しくはありません。partialの…

Toolzとは?インストール方法

はじめに Toolzは現在の関数型言語の標準ライブラリから大きな影響を受けて作られました。標準ライブラリのitertoolsやfunctoolsを拡張するようなモジュールです。 実際、itertoolsやfunctool…

filter, reduce, partialの使い方

前回の記事でmap関数について説明しました。今回はmap関数以外の便利な高階関数を以下の3つ紹介します。 組み込み関数:filterfunctoolsモジュール:reduce, partial filter(predic…

イテレータとジェネレータとは?

イテレータとはリストやタプルのようなシーケンスを扱う手法の一つです。 シーケンスを扱うときは、for文を使って先頭の要素から順番に処理をしていくことが多いです。先頭の要素を処理し終えた後は、2つ目の要素の処理をし、3つ目…

高階関数とは?便利なmap関数 内包表記との違い

高階関数とは? 高階関数とは関数を引数として受け取ったり、関数を戻り値とするような関数のことです。 高階関数のメリットを事例を元に紹介します。 ①文字列のリストの全ての要素にupper関数を適用し、全て大文字にした文字列…

関数型プログラミングとは?(Python版)

はじめに 私は関数型プログラミングがオブジェクト指向と比べられるほど可能性のあるコーディング手法だと知り勉強を始めました。しかし、Pythonメインに関数型プログラミングを説明する情報が少なく、LISPやJavaScri…

参照透過性、副作用、純粋関数、DRY原則とは?

関数型プログラミングで登場する用語、”参照透過性”、”副作用”、”純粋関数”を紹介します。 DRY原則は関数型プログラミング特有の用語ではないですが、大切な概念なので合わせて紹介します。 参照透過性 参照透過性は計算機言…