2021年5月第3週レポート

インプット

📝 「Haskell入門」を読みつつfp-tsで遊んでいる

引き続き、「Haskell入門」を読んでいます。

モナドトランスフォーマーの章まで読みました。これでモナドの基礎は大体理解できたのかなと思います。fp-tsだとOption(HaskellでいうところのMaybe)やEither、State、ReaderといったモナドとReaderT、StateTといったモナドトランスフォーマが用意されています。参考書にあるようなコードをfp-tsに移植してみる、といった遊びもやってみました。

ただ、どうにもfp-tsが実用シーンでうまく活用するイメージができていなく少しモチベーションが下がりつつあります。ちょっとしたHTTPクライアントを書いてみようとしても、かなり時間がかかり、かつあまり納得のできない出来でした。もともとの動機は関数型プログラミングのエッセンスを理解して自分のコードに取り入れたいというものです。思い返すと最近はfp-tsを使うことに執着している気がします。fp-tsはTypeScriptでの関数型プログラミングを支援してくれるライブラリですが、その実態はモナドライブラリというのが適切な気がしています。モナドを活用してプログラミングをすることはそもそも関数型の思考でプログラミングをしたことがない自分には早かったのかもしれません。

さて、JavaScript/TypeScriptでの関数型プログラミングに強く影響を受けていて、かつ世の中で広く使われているものと言えば、最近ではやはりReactなのだと思います。一度、関数型プログラミングで動くソフトウェアを作るというところに立ち返ってReactを勉強して関数型プログラミングを実用する、ということを体験してみようと思います。

アウトプット

目立ったものはなし

Profile
d_yama
元Microsoft MVP for Windows Development(2018-2020)
Sub-category : Windows Mixed Reality
Search