在给定的Scala函数中更改类型

时间:2019-02-04 12:49:40

标签: scala

我有一个功能

f : Point2D => Point2D = ???

我想将其转换为元组的功能:

(Double,Double) => (Double,Double)

我知道如何将Point2D映射到Tuple2

implicit def pointToTuple(p : Point2D) = (p.x,p.y)

但是我不知道如何映射函数本身

def convertFunction(f : Point2D => Point2D) : (Double,Double) => (Double,Double) = {
    ???
 }

1 个答案:

答案 0 :(得分:1)

您还需要tupleToPoint,而不仅仅是pointToTuple

现在,只要您有,就可以做到:

  def convertFunction(f: Point2D => Point2D) = 
    tupleToPoint andThen f andThen pointToTuple