假设我有一个函数列表,每个函数都希望某个类型作为输入,并返回相同类型的值。例如String
。
这些函数的使用方式是链式的:一个的输出是下一个的输入。
def oneTransform(input: String): String = { ... }
def anotherTransform(input: String): String = { ... }
def yetAnotherTransform(input: String): String = { ... }
它可以在这样的代码中使用:
val input = "my-initial-input"
val input2 = oneTransform(input)
val input3 = anotherTransform(input2)
val output = yetAnotherTransform(input3)
有更优雅的方式表达这是Scala吗?
这非常不优雅且容易出错,我想也许Scala(或Scala库)提供了一种更好的方式来编写它。
单子? foldLeft?