Converting a tuple of options to an option of tuple with Scalaz or Shapeless

后端 未结 5 1426
误落风尘
误落风尘 2020-12-15 06:45

Having

(Some(1), Some(2))

I expect to get

Some((1, 2))

and having

(Some(1), None)
         


        
5条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-15 07:27

    scala> import scalaz._
    import scalaz._
    
    scala> import Scalaz._
    import Scalaz._
    
    scala> (Tuple2.apply[Int, Int] _).lift[Option].tupled
    res5: (Option[Int], Option[Int]) => Option[(Int, Int)] = 
    
    scala> res5((some(3), some(11)))
    res6: Option[(Int, Int)] = Some((3,11))
    
    scala> res5((some(3), none))
    res7: Option[(Int, Int)] = None
    

提交回复
热议问题