它总是返回 nil 。
这不是说它纯粹吗?
println 会导致任何副作用吗?
答案 0 :(得分:6)
副作用大致可以定义为“修改函数本身未包含的任何状态”。这包括写入磁盘或进行某种外部API调用等。由于println
写入STDOUT
,它正在改变标准输出的状态。因此它有副作用。
答案 1 :(得分:4)
它总是返回 nil 。
这不意味着它是纯粹的吗?
只有它没有副作用才意味着它是纯净的。
println 会导致任何副作用吗?
是的,打印出来。
如果它没有副作用,那将是非常无聊的,因为它也没有任何明智的回报。
我更喜欢术语引用透明度到纯度。如果您可以在不改变程序含义的情况下将其替换为其值(反之亦然),则表达式或函数是引用透明的。这意味着println
是透明的 IFF 我可以用println
替换任何nil
或nil
println
println
而不改变程序的含义。显然,你不能这样做,因此,brew install heroku/brew/heroku
并不是指称透明/纯粹。