我试图再次选择F#,我有一个案例,我发现很难处理不变性.
在大多数情况下,我发现不变性非常好.但是,我发现处理嵌套集合非常困难.
我想编写一个用户GUI程序.
为简单起见,我们说我们有这个模型:
type Employee =
{
Name : string
}
type Company =
{
Name : string
Employees : Employee list
}
Run Code Online (Sandbox Code Playgroud)
如果我修改现有Employee的
let myNewEmployee = { myEmployee with Name = "John Smith" }
Run Code Online (Sandbox Code Playgroud)
我得到一个新的Employee,这很好.然而,这里出现了一系列问题:
我需要删除旧的myEmployee并添加myNewEmployee到公司的员工列表中.
这引发了列表中的突变,产生了一个新列表.
这迫使我创建一个新的Company记录,以注入新的集合,不得不重建我有的整个公司列表.
换句话说,更改员工的姓名,使我重建整个数据结构.
每当我感到难过时,我发现F#有不同的创造性做事方式.
我假设我不知道如何以功能的方式处理这种情况,请赐教;)
我应该使用其他F#库,比如F#Data吗?
TIA,大卫
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |