>>77
オレたちScala使いはな! そこら辺の低級言語や、オブジェクト志向倶楽部で、
「あれがない」「これがない」って、大口叩いて仲間と心をなぐさめあってるような
負け犬どもとはわけが違うんだからな。

「binarySearchが必要だ」と心の中で思ったならッ!
その時スデに行動は終わっているんだッ!

def indexOf[T <% Ordered[T]](xs: IndexedSeq[T], elem: T): Int = _indexOf(xs, elem).right.toOption.getOrElse(-1)
def _indexOf[T <% Ordered[T]](xs: IndexedSeq[T], elem: T): Either[Int, Int] = (xs, xs.length / 2) match {
case (IndexedSeq(), _) => Left(-1)
case (xs, i) if xs(i) > elem => { _indexOf(xs.slice(0, i), elem)}
case (xs, i) if xs(i) < elem => { _indexOf(xs.slice(i, xs.length), elem).right.map(_ + i)}
case (_, i) => Right(i)
}

短いのは誰かまかせた