New Year Protocol 2016

2016-01-01 / [note]

技術関連での2015まとめ。

2015年 振り返り

ポイントを絞って。

Haskell

Freeモナドベースの設計パターンを覚える。

-- f: 問題領域上での操作を表すDSLのAST
-- a: DSLを評価した結果生成される値の型
Free f a

特定の目的を持ったモジュールを作る場合は、とにかくf :: * -> *に適用される データ型を定義していくのが設計のメイン作業になる。

Purify code using free monads

5 Ways to Test Applications that Access a Database in Haskell

さらにfp in scalaでは自然変換を用いてfを別の意味論gへと変換することで、fに拡張性を持たせていく手段を学んだ。

下記の例だとListOptionFree f afに相当し、List a -> Option af a -> g aという自然変換を構成する。

自然変換(Natural Transformation)

List a -> Option a
↓
f a -> g a

AST定義をする流れでGADTの効果を実感する。

GADT

React.js

社内向けのプロダクトで導入。サポートするユースケースが増えていくに連れてStoreが複雑になっていく。 自然とReduxアーキテクチャが正しいように思いはじめる。

数学

まずは基礎となる記号と論理を学ぶ。 「数学は言葉」という素晴らしい本に出会ったのです!(テンション上がる)

数学は言葉

2016年 抱負

  • 家計を管理するための自前アプリがほしいので、Haskellで書いてる。 データの解析と可視化はPythonのツールチェインを使いたいので……PythonのpandasやNumPyを使う。

  • データの入力部分はElmで行きたい。

  • 「型システム入門」を読み切る。(無理かな……)