🤩 ひと目でわかる FunctorとMonad ~ UNIT3 THEORYの概要をプレビュー
この記事は、
2023-12-1以降に順次 、Zennで公開予定
関数型プログラミングの入門本
Functional Programming From Scratch
関数型プログラミングをゼロからわかりやすく実用的に幅広い視点から解説!〜 圏論からFRPの構築まで
🔷UNIT 1🔷 OVERVIEW
の冒頭部分です。
全UNIT 1 ~ 5のうち、この本は、UNIT 1です
★1. OVERVIEW
関数型プログラミングの一番「外側」を紹介
関数型プログラミングとは何か?
最新のプログラミングコミュニティの動向、CPUと命令型プログラミング、システム言語における型、構造化プログラミングへの抽象化、関数型言語の紹介、オブジェクト指向と関数型プログラミングの用語と数学の関係、Unreal Engine(ゲームエンジン)の関数型言語Verse、SolidJS、FRPの哲学的側面も含む広く一般的な話題
TypeScriptとF#の開発環境のクイックスタート、セットアップ
2. BASIC
関数型プログラミングを成立させるための骨格となるパーツを紹介
ファーストクラス関数 、 ラムダ式 、 高階関数 、 二項演算の結合性 、 関数合成 、 Monoid(モノイド)
これがなければ関数型プログラミングは始まらないので理解は必須
3. THEORY
関数型プログラミングの根底にある理論にかなり深く踏み込む
難解だと思われている 圏論(Category theory) も含め、特に興味がある読者向け
著名な論文を引用しながらも、アプローチしやすい解説を試みる
興味のない読者は無理をしてすべて理解しようとしなくても良いし、読み飛ばしても構わない
4. APPLICATION
THEORYの内容のまとめ、図を含む
Pipeline/List/Option/IO/Timeline/Async Monad を紹介
Monadの実装、F#とTypeScriptを使って具体的なコードを書いていく
最終的には ゼロからミニマルなFRPを構築 することを目指す
5. SAMPLE CODE
サンプルコード
title: "🤩 ひと目でわかる FunctorとMonad ~ UNIT3 THEORYの概要をプレビュー"
FunctorとMonad
ひと目でわかるFunctor and Monad at a Glance
- 普通の関数
- Monad関数(クライスリの矢)
- (Endo)FunctorとMonadは表裏一体の数学構造
- (Endo)FunctorとMonadの
とid の関係ID
- Pipelineされた関数はリンクできる(関数合成)
-
(Endo)Functorでは、関数はコンテナの中身も殻もPipelineでリンクされ合成される
-
Monadでは、Monad関数のためのリンク=クライスリ合成される
- (Endo)Functorでは、関数はコンテナの中身も殻もPipelineでリンクされ合成される
- Monadでは、Monad関数のためのリンク=クライスリ合成される
Discussion