メインコンテンツまでスキップ

Software Design 202511

つまみぐい関数型プログラミング

ElmはJSに変換される関数型言語である。

Elmでは、副作用を直接扱うのではなく、「副作用を起こすための命令」として、 Cmdという特殊な型で別に扱うことで、関数本体を純粋に保っている。

カリー化などで外から副作用をInjectするのではなく、 純粋関数の実行結果としてCmdを受け取り、それをElmランタイムが実行し、 得られた結果を別の純粋関数に渡していく、という点が面白い。 Result(Ok,Err)で成否を表現する。

ScalaはJVM上で動く関数型言語である。

関数型とオブジェクト指向を融合しているのが特徴。 enumで代数的データ型を定義する。enumはインスタンスメソッド的なものを持てる。 クラスメソッド的なものは「コンパニオンオブジェクト」で定義する。 Either(Left,Right)で成否を表現する。