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

Scalaで順列と組合せ

List同士の結合は避けたのでそこそこ効率は良い・・と思う。 Rubyに入った重複版も書いてみた。 def permutation[A](trv1: TraversableOnce[A], n: Int): Stream[List[A]] = { def f(ls: List[A], rest: Stream[A], n: Int): Stream[List[A]] = if (n == 0) …

Scalaで数独ソルバのワンライナー

scala -e "(Stream(args(0)) /: (0 to 80))((st, i) => st.flatMap(s => if (s(i) != '.') Stream(s) else ('1' to '9').toStream.filter(c => (0 to 8).forall(j => Seq(i - i % 9 + j, i % 9 + j * 9, i - i % 27 + j / 3 * 9 + i % 9 / 3 * 3 + j % 3).fo…

Scalaでカッコなし

今さらだけど http://e-arrows.sakura.ne.jp/2010/08/is-lisp-really-has-too-many-parenthesis.html スクリプト実行だと宣言無しにargsが使えたので、\uXXXXを使わなくてもカッコ0個にできた。 val fact: Int => Int = n => 1 to n product val format: Int…