Dae*_*yth 7 functional-programming scala scalaz applicative
我有scalaZ可用.
我有一个(A, B)和一个(A => C, B => D),我想以(C, D)简单易读的方式获得一个.
我觉得我可以用应用程序做些什么,但我找不到合适的方法.
一开始没有得到它,OP有功能元组.在评论中建议的情况下,这应该有效:
val in = ("1", 2)
val fnT = ((s: String) => s.toInt, (i: Int) => i.toString)
val out = (in.bimap[Int, String] _).tupled(fnT)
Run Code Online (Sandbox Code Playgroud)
如果你有两个函数并想在元组上应用它们,你应该能够做到:
import scalaz._
import Scalaz._
val in = ("1", 2)
val sToi = (s: String) => s.toInt
val iTos = (i: Int) => i.toString
val out = sToi <-: in :-> iTos
// or
val out1 = in.bimap(sToi, iTos)
// or
val out2 = (sToi *** iTos)(in)
Run Code Online (Sandbox Code Playgroud)