読者です 読者をやめる 読者になる 読者になる

Java8 定義済み関数型インタフェース(主要なものメモ)

忘れるのでメモ。プリミティブ型用のインタフェースは省略。 Interface Scala風関数型表記 Consumer<T> (T) => void BiConsumer<T, U> (T, U) => void Supplier<T> () => T Function<T, R> (T) => R BiFunction<T, U, R> (T, U) => R Predicate<T> (T) => boolean BiPredicate<T, U> (T, U) => bo</t,></t></t,></t,></t></t,></t>…

無限Streamに終了条件を設定する

例えばDOMのようなツリー構造があったとして、あるノードを渡された時に、ルートからそのノードまでの名前を連結してパス文字列を作成する、というプログラムを考えます。Java7でも動くように、副作用ループを使った書き方だとこんな感じ。 public static St…

Scala ARM的な自動リソース管理(超簡易版)

自動リソース管理(というかclose管理)を使いたいけど、Scala ARMライブラリを導入するほどのもんでもないなー、というときに自作するためのメモ。 // ラッパクラスと関数の定義 class ManagedResource[T <: {def close(): Unit}](resource: T) { def foreach[U](f: T => U) { try { f(resource) } finally { resource.clo</:>…

ScalaでJUnitテストケースを書く

とりあえず、Scala用のテストフレームワークは使わず、素のJUnitを使った例。Eclipseから使う場合、JUnit関連クラスのimportはクラススコープの外側に書いておかないと、右クリックからテスト実行できないようです。あと、Scala2.8からアノテーションのパラ…

Monadについて

勉強中。あとでまとめる。 (2010/09/06)ざっくりまとめ オブジェクト指向・手続き型脳味噌で理解したモナド(の概念の一部) モナドは、副作用の範囲を封じ込めるコンテナとして見ることができる 高階関数を受け取り、モナドの中身に適用して、その結果をまた…

機能のテンプレ化に関する考察

大規模システムのフレームワークとか作っていると、まずは「機能の標準化」というお題目で、画面の流れのモデルケースを作り(例:検索→一覧→選択して編集→DB更新→検索画面へ戻る)、個別機能の設計ではこのモデルケースに極力準拠してもらいつつ、実装作業…

ServletもScalaで書ける

そりゃそうだ。多忙な Java 開発者のための Scala ガイド: Scala とサーブレット