弃用以create开头的功能并将其替换为以make开头的功能的原因是什么?

时间:2018-07-02 15:51:37

标签: ocaml

在文档中,我发现很多以 create 开头的实例化函数都被 make 代替。出于兴趣,为什么语言必须经历这些更改?

1 个答案:

答案 0 :(得分:2)

首先,我不确定。我发现的唯一决定信息就是提交消息。为简单起见,我遵循了array.mli上的修改,但是我想这适用于stdlib的其余部分。让我们沿着git blame车道旅行。

正如我在评论中所述,Array.create被标记为不推荐使用的19 years ago。提交消息与我们关系不大:

  

array.mli:制造商的文件,make_matrix

翻译成(我的翻译):

  

array.mli:make,make_matrix错误案例的文档

尽管这是我在该文件中发现的第一条“已弃用”痕迹,但似乎弃用本身早于此。

但是,这两个功能已经并存了很长时间。在1997中添加了make(并立即显示为首选名称)。

在提交消息中,您可以阅读:

  

array.mli,array.ml,random.ml:创建-> make(相干avec字符串)

翻译为

  

array.mli,array.ml,random.ml:创建-> make(与String一致)

在该提交中,添加并记录了makecreate被声明为make的别名,没有完全记录在案。可能是当时将事物标记为已弃用的方法。

tl; dr:因为他们希望具有一致性,因为根据数据结构,相同的行为具有不同的名称。为什么make赢了?您将不得不问Damien Doligez(他仍然是主要开发人员之一)。个人猜测:makecreate听起来更“必要”。但是我可能会想,因为当我做出选择时我就学习了OCaml。