📔

🤩 ひと目でわかる FunctorとMonad ~ UNIT3 THEORYの概要をプレビュー

2023/11/24に公開

この記事は、

2023-12-1以降に順次 、Zennで公開予定

関数型プログラミングの入門本

Functional Programming From Scratch

関数型プログラミングをゼロからわかりやすく実用的に幅広い視点から解説!〜 圏論からFRPの構築まで

🔷UNIT 1🔷 OVERVIEW

image

https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-1/

の冒頭部分です。



全UNIT 1 ~ 5のうち、この本は、UNIT 1です


★1. OVERVIEW

image

関数型プログラミングの一番「外側」を紹介

関数型プログラミングとは何か?

最新のプログラミングコミュニティの動向、CPUと命令型プログラミング、システム言語における型、構造化プログラミングへの抽象化、関数型言語の紹介、オブジェクト指向と関数型プログラミングの用語と数学の関係、Unreal Engine(ゲームエンジン)の関数型言語Verse、SolidJS、FRPの哲学的側面も含む広く一般的な話題

TypeScriptとF#の開発環境のクイックスタート、セットアップ

https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-1


2. BASIC

image

関数型プログラミングを成立させるための骨格となるパーツを紹介

ファーストクラス関数 、 ラムダ式 、 高階関数 、 二項演算の結合性 、 関数合成 、 Monoid(モノイド)

これがなければ関数型プログラミングは始まらないので理解は必須

https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-2


3. THEORY

image

関数型プログラミングの根底にある理論にかなり深く踏み込む

難解だと思われている 圏論(Category theory) も含め、特に興味がある読者向け
著名な論文を引用しながらも、アプローチしやすい解説を試みる

興味のない読者は無理をしてすべて理解しようとしなくても良いし、読み飛ばしても構わない

https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-3


4. APPLICATION

image

THEORYの内容のまとめ、図を含む

Pipeline/List/Option/IO/Timeline/Async Monad を紹介

Monadの実装、F#とTypeScriptを使って具体的なコードを書いていく

最終的には ゼロからミニマルなFRPを構築 することを目指す

https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-4


5. SAMPLE CODE

image

サンプルコード

https://zenn.dev/ken_okabe/books/functional-programming-from-scratch-5



title: "🤩 ひと目でわかる FunctorとMonad ~ UNIT3 THEORYの概要をプレビュー"

ひと目でわかる FunctorMonad

Functor and Monad at a Glance


  • 普通の関数

image

  • Monad関数(クライスリの矢)

image


  • (Endo)FunctorとMonadは表裏一体の数学構造

image


  • (Endo)FunctorとMonadの idID の関係

image


image


  • Pipelineされた関数はリンクできる(関数合成)

image


  • (Endo)Functorでは、関数はコンテナの中身も殻もPipelineでリンクされ合成される

  • Monadでは、Monad関数のためのリンク=クライスリ合成される

image


  • (Endo)Functorでは、関数はコンテナの中身も殻もPipelineでリンクされ合成される

image

image


  • Monadでは、Monad関数のためのリンク=クライスリ合成される

image

image

Discussion