scala - A => (B, C) 到 A => (C, B) 的惯用函数变换

标签 scala functional-programming combinators

是否有转换函数的惯用方法

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


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

最佳答案

  • 您可以更改 (B, C)(C, B)使用 Tuple2.swap .
  • 车削A => (B, C)A => (C, B)然后可以使用 .andThen(_.swap) 完成.

  • 例如 :
    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)
    

    关于scala - A => (B, C) 到 A => (C, B) 的惯用函数变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32297222/

    相关文章:

    javascript - 将嵌套数组中的值设置为 null 的功能方法

    javascript - 可以将返回新对象的函数视为 "pure"吗?

    lambda - 在Lambda演算中定义堆栈数据结构及其主要操作

    javascript - 这个组合器是什么?

    scala - if (Option.nonEmpty) 与 Option.foreach

    scala - 为什么 IntelliJ IDEA 为spark.sparkContext.textFile显示 "Cannot resolve symbol spark"?

    java - Swagger 代码生成 : simple JAX-RS example

    scala - 在映射中查找其值满足函数的键

    clojure - 为什么不返回值的 Clojure 函数返回 nil?

    haskell - 在HXT中进行逻辑或运算而不重复结果