2010-01-01から1ヶ月間の記事一覧

1羽より多く鳩を見つけるアルゴリズム

概要 鳩の巣原理(あるいはディリクレの箱入れ原理、部屋割り論法)の構成的な証明は、 1羽より多く鳩が入っている巣を見つけるアルゴリズムである。

Scalaでflip+fold(L|R)

flip(2引数関数の引数を逆転させる高階関数)がすぐに見つからなかったので書いてみた。 foldLeft, foldRightで使えるのでは?と思って実験。 object Flip { def main(args : Array[String]) : Unit = { val list = List("恋しさ", "せつなさ", "心強さ") def…

インデックス付きforeachほか

概要 先日Javaで書いたインデックス付きforeachループ http://d.hatena.ne.jp/kya-zinc/20100107/1262856312 をScalaで書いてみた。 (なお、Scalaのfor-comprehensionはループ以外にも使える。) Iterableのデフォルト実装は便利。

投げるよ投げるんだよ投げちゃうからね

(1/8微妙に追記) メソッドのthrowsに同じ例外を複数書いていいと知った。 これでもかとExceptionを投げると宣言することができる。 これで共同開発者に例外への思い入れを伝えよう!

インデックス付きforeachループ

(1/8改良版を末尾に追加) 問題 foreachループでインデックスが使いたい。(今何番目?) かといって下のようにローカル変数iを使うとiがループの後で見えてしまうのが嫌。 参考:foreachでインデックスが使いたい場合はそれなりにある http://blog.livedoor.jp/…

MapがIterableではない理由(憶測)

疑問 JavaのMapはキーと値のペアの集まりであるとみなせる。 コレクション(集まり)は通常便利のためIterableを実装している。 (実際にはサブインターフェースのCollectionを実装していることが多い) しかしMapインターフェースはIterableを継承していない。 …