Scala

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で「アラビア数字・ローマ数字変換」

お題はこちら。お題:アラビア数字・ローマ数字変換 - No Programming, No Lifeテストは割愛。ご覧のとおり、 アラビア数字→ローマ数字の場合は、大きい単位から順に元の数字から引いていって、引けた記号を積むだけ ローマ数字→アラビア数字の場合は、左側…

Scalaで「フルパスから相対パスを求める」

懲りずにやってみた。 お題はこちら。お題:フルパスから相対パスを求める - No Programming, No Lifeお題とは直接関係ないけど、例外のテストを行うための@Test(expected=classOf[HogeHoge]) をうまく略記する方法はないものでしょうか。※仕様が追加されて…

「ある金額になるコインの組み合わせ」をScalaで

続いてやってみた。お題はこちら。 お題:ある金額になるコインの組み合わせ - No Programming, No Lifeあまり芸のない総当たりだけど、こんなんでいいのかな。 object CoinAssort { def search(coinList: List[Int], sum: Int, curAssort: List[Int] = Nil)…

FizzBuzz(Nパターン)をScalaで

お題:FizzBuzz(Nパターン) - No Programming, No Life こちらのお題にScalaで挑戦。手続き脳が頑固で苦戦しました。 object FizzBuzzN { def main(args : Array[String]) : Unit = { fizzBuzzN(List(3, "Fizz", 5, "Buzz", 7, "Hoge"),100).foreach(s => pr…