dark matter好きは誰だ!
run length encoding
10月 21st, 2012 · programming, Scala
run length encoding って、手続型で書くの面倒だよね。というか、手続型で書くこと考えるの面倒くさくていやだよ。
Scalaちゃんで解いてみる。
scala> def runlength[T](list: List[T]): List[(T, Int)] = list match {
| case Nil => Nil
| case x :: xs => val (first, rest) = xs.span(x ==)
| (x, first.length+1) :: runlength(rest)
| }
runlength: [T](list: List[T])List[(T, Int)]
scala> runlength("aaabbabbbdccbabaaabab".toList)
res11: List[(Char, Int)] = List((a,3), (b,2), (a,1), (b,3), (d,1), (c,2), (b,1), (a,1), (b,1), (a,3), (b,1), (a,1), (b,1))
やった、4行で書けちゃった。仕方ないので(何が?)、糞みたいなコードも書いてみた。
→ 1 CommentTags:
数を数える
10月 15th, 2012 · programming, Scala
よくありがちな処理。リストの要素の数をそれぞれいくつあるか数える。
scala> val list = List(1,2,2,1,4,2,3,1)
list: List[Int] = List(1, 2, 2, 1, 4, 2, 3, 1)
scala> val counts = list.groupBy(identity).mapValues(_.size)
res4: scala.collection.immutable.Map[Int,Int] = Map(3 -> 1, 1 -> 3, 4 -> 1, 2 -> 3)
scala> counts(1)
res5: Int = 3
もう、ループ回してキーがなかったら 1 にして、キーあったら +1 する、なんて糞みたいな処理書かないでいいんだね!
→ No CommentsTags:
死因
6月 27th, 2012 · thinking
日本では、20~30代の死因のトップが自殺なんだけど、それってすごくいい国だってことだよね。
「不慮の事故」が自殺を上回るならいいけど、それ以外の死因が上に来るような国はいやだな。
→ No CommentsTags:
ネイティブ・非ネイティブ間に起こる齟齬
1月 26th, 2012 · language
ネイティブ・非ネイティブ間に起こる齟齬のうち、”Samen”と「ぶっかけ」のそれは、かなり構造が似通ってる気がする。
→ No CommentsTags:
Tell Your World
1月 22nd, 2012 · culture
久しぶりにiTMSで音楽を買ってみた。
まさか初音ミクの曲に金払うとは思わなかったな。すごく好きだわ。
そいや、一時期「ゲイツに聞けキリツ」とか言ってた奴息してんのかなw
→ No CommentsTags:
def pascal(n: Int)
11月 27th, 2011 · programming, Scala
パスカルの三角形の n 段目(0-origin)を求める。
def pascal(n: Int): IndexedSeq[Int] = { val pre = if(n == 0) IndexedSeq(1) else pascal(n - 1) for((x,y) <- (0 +: pre) zip (pre :+ 0)) yield x+y }
→ No CommentsTags:
ロンリーバースデー
11月 21st, 2011 · life
毎週一人で行ってるイタリアンのレストラン。
誕生日も把握されてるわけだが、この前何も考えずにいつも通りランチに行ったら、誕生日おめでとうございますみたいなデザートが出てきた。
うわー、一人で誕生日パーティかよ、みたいな雰囲気で、すげー惨めな気分に。
こうなったらこれからも一人で戦っていきます。次はクリスマスディナーに単身乗り込んだりするぜ。
→ No CommentsTags: