Я просто пробую ClojureScript, начиная с преобразования того, что я написал в Clojure, в cljx.
При попытке скомпилировать получаю:
clojure.lang.ExceptionInfo: :refer must be followed by a sequence of symbols in :require
Я нахожу некоторые косвенные ссылки в Интернете, но нигде не указано, должен ли я использовать :refer :all
в программе ClojureScript.
Если я не могу этого сделать, в чем причина этого ограничения?
refer :all
заключается в том, что они вводят статическое разделение фаз. Если вы сделаете(ns my-ns (:require foo.bar refer :all))
сейчас, а затем добавите foo.bar/baz позже, вы можете столкнуться с baz, уже определенным в my-ns. Используя все средства, вы должны быть в состоянии перечислить закрытый список объявлений в пространстве имен или рисковать слишком запутанным интерактивным и частичным поведением перекомпиляции. Это особенно проблематично, если у вас есть макросы. 28.02.2017