関数型プログラミングはいつ使う?

プログラミングパラダイムの基礎

Eleanor Thomas

Senior Data Analytics Engineer

関数型プログラミングの用途

  • 機械学習、ディープラーニング、AI
  • 大規模データの解析・処理
  • データエンジニアリング(例: Scala、Clojure)

データ処理

プログラミングパラダイムの基礎

関数型プログラミングの例

def process_data(raw_data):
    processed_data = raw_data

    ... further processing steps here! ...

    return processed_data
  • 関数は raw_data にある入力データを受け取る
  • 出力用に processed_data という変数を作成
  • 一貫した手順でデータをさらに処理する
  • processed_data を返す
プログラミングパラダイムの基礎

関数型プログラミングの長所と短所

長所

  • 純粋関数は読みやすくデバッグしやすい
  • 純粋関数はテストしやすい
  • 想定外の副作用が少ない
  • 純粋関数はプロジェクト間で再利用しやすい
  • 並列実行で高速化しやすい

短所

  • 発想の転換が必要で制約的に感じることがある。実務で望む「副作用」(ファイル書き込み等)が多い
  • 関数型の専門家・ツール・フレームワークが少ない
  • 学習曲線が急で教材が少ない
  • メモリ使用量が大きく、用途が制約されやすい
プログラミングパラダイムの基礎

関数型と宣言型プログラミング

  • 関数型は宣言型プログラミングの一種です
  • 宣言型: 何をするかを指示し、どうやるかは指示しない
  • 関数型は宣言型の「一種類」に過ぎません
  • 実行する関数を指定し、手順の細部は指定しない

関数型プログラミングは宣言型

プログラミングパラダイムの基礎

演習に進みましょう!

プログラミングパラダイムの基礎

Preparing Video For Download...