Почему странное 'использование для ns / использование с Clojure?

Я определяю пространство имен внутри библиотеки clojure без ',

(ns myproject.hello) 

Но я использую' для его использования.

(use 'myproject.hello)

Почему это? Есть ли за этим логика? В черт возьми (диалект схемы), я использую без 'ie (использовать myproject) Почему это нарушение?

7
задан prosseek 19 August 2010 в 19:14
поделиться

2 ответа

Краткий ответ: ns - это макрос, поэтому его аргументы не оцениваются. use - это функция, поэтому ее аргументы должны быть заключены в кавычки, чтобы компилятор не мог их вычислить.

Функции use / require не были частью оригинального дизайна Clojure, они были добавлены участниками. Они нуждаются в капитальном ремонте.

15
ответ дан 6 December 2019 в 10:46
поделиться

Идиоматический способ:

(ns myproject.hello

(: используйте myproject.world))

3
ответ дан 6 December 2019 в 10:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: