Modegramming Style
2016年7月31日日曜日
[SDN] Generalized type constraints
›
Scalaの持つ型機能にGeneralized type constraintsがあります。訳語がよく分からなかったのでここでは型制約と呼びます。 Scalaプログラミングの要諦は、いかにプログラムのバグをコンパイルエラーで検出するか、だとすると型制約はこの目的を進めるために有効...
2016年6月30日木曜日
foldの小技
›
関数型プログラミングではfold系の畳込み処理が多用されます。 composableという観点からはMonoid ( Scala Tips / multiplication ) やState Monad ( State的状態機械2016 )を使う形に持ち込むのが筋がよいと思います...
2016年5月8日日曜日
Breezeで行列式
›
大規模データに対する本格的な分析を行うためには線形代数は避けて通れません。 そこでScalaで広く使われている線形代数ライブラリBreezeを調べてみることにしました。 https://github.com/scalanlp/breeze 最終的には大規模データに対して分散演算を...
2016年4月30日土曜日
型安全イコール判定 - ScalazとScalactic
›
Scalaプログラミングのはまりポイントとして頻出頻度が高く影響も甚大なのは、==メソッドとcontainsメソッドの型チェックだと思います。 この2つのメソッドは(多分Javaとの互換性の問題で)、引数に定義されている型がAnyであるため事実上型チェックが効かない仕様になってい...
2016年3月31日木曜日
State的状態機械2016
›
昨年Scalaにおける状態機械の実装戦略について以下の記事で検討しました。 Scala的状態機械/OOP編 Scala的状態機械/FP編 OOP編はcase classで作った汎用の状態機械オブジェクトをOOP的な枠組みで利用しました。 そして、FP編ではOOP編で作った汎用の状...
2016年2月29日月曜日
ScalaでXSLT
›
Scalaで半構造データ的なデータ処理に対してどのようなアプローチをとっていくのかは重要な論点の一つだと思いますが、引き続きXMLも有力な選択肢だと思います。 XMLはXML文書をプログラム内にデータ構造として取り込むだけだとあまり面白みはありませんが、XPath, XSLT, ...
2016年1月31日日曜日
[SDN] 例外とNothing
›
try/catchで例外処理を書く場合、以下のように例外に対する共通処理を羅列する形になることがあります。 すべての例外に対して同じ処理を行う場合には、大本のjava.lang.Exception(場合によってはjava.lang.Throwable)でキャッチすればよいですが、...
‹
›
ホーム
ウェブ バージョンを表示