我最近开始学习SML,当时我才知道 applicative 和 generative functors 。我也知道SML使用生成式函子。
我试图用Google搜索这些术语,但找不到任何引人注目的资源来解释这些术语的含义以及两者之间的区别。
因此,我只是想以一种几乎不稳定的方式来了解这些术语的实际含义,以及这与SML <生成>生成的关系。
答案 0 :(得分:9)
它与functor应用程序产生的模块中抽象类型的相等性有关。
Generative意味着对函子的两次调用将产生包含非相等抽象类型的模块。
Applicative表示函数的两次调用将产生包含相等抽象类型的模块,如果参数在某种意义上相等(例如在语法上相同),则。
我将在OCaml中给出一个示例,因为它恰好同时支持这两个方面:
<input id="GroupSets" name="GroupSets" type="hidden" value="System.Collections.Generic.List`1[ProjectNamespace.Models.SetOfGroups]">