【问题标题】:Idiomatic Function Transformation of A => (B, C) to A => (C, B)A => (B, C) 到 A => (C, B) 的惯用函数转换
【发布时间】:2015-08-30 13:48:45
【问题描述】:

有没有一种惯用的方法来转换函数

val x: A => (B, C) = ...

val y: A => (C, B) = ...

【问题讨论】:

    标签: scala functional-programming combinators


    【解决方案1】:
    • 您可以使用Tuple2.swap(B, C) 更改为(C, B)
    • 然后可以使用.andThen(_.swap)A => (B, C) 转换为A => (C, B)

    例如:

    scala> val a = (i: Int) => (s"$i", i.toDouble)
    a: Int => (String, Double) = <function1>
    
    scala> val b = a.andThen(_.swap)
    b: Int => (Double, String) = <function1>
    
    scala> b(5)
    res1: (Double, String) = (5.0,5)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-08
      • 2014-03-23
      相关资源
      最近更新 更多