Scala:将不纯函数传递给 HoF

Scala: passing impure function to a HoF

我遇到了一段以非常意外的方式使用 map 函数的 scala 代码:

myList.map(item => someImpureFunction(item))

someImpureFunction 具有 return 类型的 Unit。

这是一种可接受的 FP 方式吗?

If someImpureFunction returns Unit 这意味着该函数执行一些副作用,例如写入数据库或标准输出,所以在这种情况下,最好使用:

myList.foreach(item => someImpureFunction(item))

如果您想编写纯 FP 代码,您应该看看延迟执行副作用(一个很好的例子是 Cats IO