val xs = List(1, 2, 3, 4, 5, 6, 7, 8, 9) xs.lift(4) // => Some(5) xs.lift(42) // => None
lift
というのはある関数をOption
を返すように加工するようなときに使われる慣例的な名前で、今回は暗にapply
のことを指している。
元々lift
はPartialFunction
に対して実装されているメソッドなのだが、Seq
へのインデックスアクセスも部分関数じゃん、ということで、なんとSeq
はインデックスのInt
を唯一の引数に取る部分関数とみなされて、PartialFunction
を継承している。面白い!