Does scala have lift from A => B to Option[A] => Option[B]?

I saw Scala.Option library but couldn’t find it there. Do I have to write lift with map instead?

You can do this:

def liftOptionFun[A, B](f: A => B): Option[A] => Option[B] = _.map(f)

val f: Int => Int = _ + 1
val ff: Option[Int] => Option[Int] = liftOptionFun(f)

Or if using cats you can do this:

import cats.Functor

val f: Int => Int = _ + 1
val ff: Option[Int] => Option[Int] = Functor[Option].lift(f)
3 Likes