【发布时间】:2016-09-26 10:47:58
【问题描述】:
代码自行解释。
val s = Seq(1,1,1)
val res: Seq[Int] = s.map(...)
.check(count how many 1s, if > 2 throw Exception)
.map(...)
我正在寻找这个check 函数的简单解决方案。
- 我可以使用
map和closure来计数和抛出,但我想要纯函数。 - 我可以使用
filter和size或reduce,但它会返回一个值,并且无法通过以下地图恢复。
如何为管道创建一个纯和有状态检查管道?
【问题讨论】:
-
编写一个简单的函数,它将整个集合作为输入,使用reduce在其中进行检查,如果检查成功则返回Some(collection),否则返回None。那么它就会很纯净。您可以将检查注入为 lambda。
标签: scala functional-programming closures pipeline purely-functional