【发布时间】:2020-06-09 16:47:48
【问题描述】:
我正在阅读 scala 编程的书,据说:
...在这种情况下,它的副作用是打印到标准输出流。
我看不出副作用在哪里,因为对于相同的输入,println 将打印相同的输出(我认为)
更新
例如,任何时候我们打电话:
println(5)
它会打印 5,我没有看到调用 println(5) 会打印 5 以外的值的情况!!
【问题讨论】:
-
如果这回答了你的问题,我会删除我的答案softwareengineering.stackexchange.com/q/40297/271736
-
What is referential transparency? 的答案似乎与此处相关。
-
您将副作用(非参考透明)与确定性混淆了。
println是一个确定性函数,但要成为纯函数,它也必须是 RT。 -
因为它除了计算结果并返回它之外还做了其他事情。
标签: scala functional-programming pure-function