2014-02-07 3 views
9

Я только что начал на clojure и задал очень простой вопрос о core.clj.Какова цель файла core.clj?

Что такое конвенция об этом? Какой код должен туда идти? Открытый API?

Он создается по leiningen при создании проекта. Я изучил исходный код некоторых библиотек, и этот файл также присутствует там (в пакете?).

Благодаря

ответ

6

Для этого нет определенного значения, но в приложении часто используется точка входа, функция main-. Для библиотек foo.core часто пользователи пространства имен будут импортировать, чтобы получить основные функции.

У вас нет , чтобы сделать это таким образом, но это полупредсказуемое место, чтобы иметь «центральный бит» того, что вы пишете, даже если ваша фактическая логика и алгоритмический код где-то остальное.

5

Это просто файл шаблона, излучаемый Leiningen. Если я запустил lein new foo, то не будет определенного или стандартного значения для пространства имен foo.core. Весьма законно, что пространство имен foo является основным контейнером API для проекта. Это просто бесплатный файл для вас, чтобы вы начали работать.

При этом, если у вас есть проект foo, ожидается, что он не будет применен, чтобы весь ваш код для этого одного проекта существовал в пространстве имен foo.*. Leiningen позволит вам построить проект с файлами src/foo.clj и src/bar.clj, и для foo вполне разумно потребовать bar, однако при упаковке кода для распространения это, вероятно, плохая идея.

6

Leiningen генерирует foo.core, потому что ему нужно выбрать имя и ядро, достаточно общее, что он, вероятно, не ошибается. Это решение стиля, но я обычно предпочитаю переименовывать core.clj в имя, которое действительно имеет смысл для моего проекта.

Смежные вопросы