将函数列表应用于值的简单方法
Simple way to apply a list of functions to a value
假设我有一个函数列表 List[A => B]
并且需要一个函数 returns List[B]
对于给定类型 A
的值:
def foo[A, B](fs: List[A => B]): A => List[B] = a => fs.map(_.apply(a))
有没有更简单的(可能用 cats
)写 List[A => B] => A => List[B]
的方法?
正如@Oleg 指出的那样,您可以使用 Applicative
生成函数:
import cats.implicits._
def foo[A, B](fs: List[A => B]): A => List[B] = a => fs ap List(a)
尽管我认为在这种特殊情况下没有太大区别。
假设我有一个函数列表 List[A => B]
并且需要一个函数 returns List[B]
对于给定类型 A
的值:
def foo[A, B](fs: List[A => B]): A => List[B] = a => fs.map(_.apply(a))
有没有更简单的(可能用 cats
)写 List[A => B] => A => List[B]
的方法?
正如@Oleg 指出的那样,您可以使用 Applicative
生成函数:
import cats.implicits._
def foo[A, B](fs: List[A => B]): A => List[B] = a => fs ap List(a)
尽管我认为在这种特殊情况下没有太大区别。