Rog*_*son 2 syntax f# functional-programming immutability
来自OOP背景,我在函数式编程中遇到了不可变对象/记录/消息概念的一些问题.
假设我通过一系列函数传递PurchaseOrder记录,其中每个函数应该添加或更新此记录中的数据.
在处理可变状态时,我只需设置传递消息的一些特定属性.
在处理不可变记录时,是否有一些设计技巧使事情变得更容易?复制每个字段以便只改变一个字段只是一种痛苦.
{ A = x.A ; B = x.B ; C = x.C ; D = x.D ; E = somethingnew; }
Run Code Online (Sandbox Code Playgroud)
我想尽可能地对数据进行分组是一种处理它的好方法,从而避免复制所有字段.对此还有其他方法或设计指南吗?
你可以这样做
let myRecord3 = { myRecord2 with Y = 100; Z = 2 }
Run Code Online (Sandbox Code Playgroud)
(来自MSDN记录页面的示例 - http://msdn.microsoft.com/en-us/library/dd233184.aspx)