関数型プログラミングと型システムのメンタルモデル
#関数型プログラミング
#型
#メンタルモデル
---
関数型プログラミングと型システムのメンタルモデル - Speaker Deck
---
プログラムを「計算機への命令」ではなく「関数を適用して値を得る計算」の定義と捉える
関数fは、値を写すもの
型をどう考えるか?
https://scrapbox.io/files/6542e1e3877abd001cb69602.png
https://scrapbox.io/files/6542e1d3e5dfda001c80e644.png
オブジェクトの内部状態を書き換える命令を行うことで、状態を変化させる
イベントを契機に状態が遷移する
遷移前の状態は必ず引数に現れ、遷移後の状態は戻り値に現れる
IOはコンピュータへの命令なので、命令的に記述するのは自然
どんなプログラミング言語でも関数型でガンガンやっていくべき?
---
はじめに #Haskell
---
副作用のキュー管理
副作用は最初と最後に寄せる
副作用とドメインを切り離す
---
関連
TypeScript による GraphQL バックエンド開発
プログラミングにおける命令型と宣言型の違いとは
TypeScriptでどこまで「関数型プログラミング」するか ─ 「手続き Haskell」から考察する - 一休.com Developers Blog