如何在纯FP中实施“单一事实来源”?

时间:2018-08-30 15:52:37

标签: functional-programming

在OO系统中,我可以有一个“数据”对象,并与其他几个对象共享一个引用。如果我更新数据对象,则任何带有引用的对象都将看到更新后的数据。

在纯FP系统中,我们遇到一个问题,对于任何数据结构,我们都可以询问“它是否应存储这样的数据,还是我们应该期望这些数据会传入?”

例如我必须决定,如果可以的话,例如:
students : Dict StudentId Student toString : Dict StudentId Student -> StudentId -> Maybe String   还是最好
studentIds : Set StudentId toString : (StudentId -> Maybe Student) -> StudentId -> Maybe String

前者冒着重复关系或数据或具有不同真理的风险。

0 个答案:

没有答案