В чем причина отказа от функций, начинающихся с create, и замены их функциями, начинающимися с make? - PullRequest
0 голосов
/ 02 июля 2018

Просматривая документацию, я заметил, что многие функции создания экземпляров, которые начинались со слова create , были заменены словом make . Из интереса, есть ли причина, по которой язык должен был пройти через эти изменения?

1 Ответ

0 голосов
/ 02 июля 2018

Прежде всего, я не знаю точно. И единственный след, который я нашел в решении - это сообщение о коммите. Для простоты я следовал за изменениями на 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, когда этот выбор уже был сделан.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...