在文档中,我发现很多以 create 开头的实例化函数都被 make 代替。出于兴趣,为什么语言必须经历这些更改?
答案 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一致)
在该提交中,添加并记录了make
。 create
被声明为make
的别名,没有完全记录在案。可能是当时将事物标记为已弃用的方法。
tl; dr:因为他们希望具有一致性,因为根据数据结构,相同的行为具有不同的名称。为什么make
赢了?您将不得不问Damien Doligez(他仍然是主要开发人员之一)。个人猜测:make
比create
听起来更“必要”。但是我可能会想,因为当我做出选择时我就学习了OCaml。