Прежде всего, я не знаю точно. И единственный след, который я нашел в решении - это сообщение о коммите. Для простоты я следовал за изменениями на array.mli
, но я думаю, что это применимо к остальной части stdlib. Давайте отправимся в путешествие по git blame
переулку.
Как я отмечал в комментариях, Array.create
был помечен как устаревший 19 лет назад . Сообщение коммита не очень важно для нас:
array.mli: документация по созданию, make_matrix
Который переводится (перевод мой):
array.mli: документирование случаев ошибок make, make_matrix
Похоже, что сам устаревший метод предшествует этому, хотя это первый след "устаревшего", который я обнаружил в этом файле.
Однако эти две функции сосуществовали довольно давно. make
был добавлен (и сразу представлен как предпочтительное имя) в 1997 .
В сообщении о коммите вы можете прочитать:
array.mli, array.ml, random.ml: создать -> сделать (coherence avec String)
Что переводится как
array.mli, array.ml, random.ml: create -> make (соответствие String)
В этом коммите make
добавляется и документируется. create
объявлен как псевдоним make
и не документирован вообще. Возможно, это был способ пометить вещи как устаревшие в то время.
tl; dr: Потому что они хотели иметь согласованность, поскольку одно и то же поведение имело разные имена в зависимости от структуры данных. Почему make
выиграл? Вы должны спросить Дэмиена Долигеса (он все еще один из ведущих разработчиков). Личное предположение: make
звучит более "императивно", чем create
. Но я могу думать так, потому что я изучил OCaml, когда этот выбор уже был сделан.