【发布时间】:2011-07-24 02:50:55
【问题描述】:
在函数式编程中,使用什么术语来区分避免修改变量所指的内容和避免修改对象本身?
对于example,在 Ruby 中,
name += title
避免修改之前name引用的对象,而是创建一个新对象,但遗憾的是让name引用了新对象,而
full_title = name + title
不仅避免修改对象,还避免修改name所指的内容。
对于避免前者的代码,您会使用什么术语?
【问题讨论】:
-
在纯函数式语言中不存在修改变量,所以我怀疑你会在这里得到有用的答案,除了“函数式编程”。我知道
name的底层对象发生了变化,但是如果我们认为它可能实现为指针,那么指针就会发生变化,这就是状态的变化。 -
在纯函数式编程中,你甚至不能做前者。在不纯的 FP 中,赋值和定义/绑定通常在语法上是不同的。
标签: functional-programming terminology