Разве не стандартизирован Conture-contrib.jar сейчас? - PullRequest
3 голосов
/ 02 августа 2010

На этой странице представлено множество библиотек clojure.И эта страница также комментирует, чтобы рассмотреть возможность использования clojure-contrib.

  • Почему clojure-contrib.jar отличается по размеру?Размер файла leiningen: clojure-contrib-1.2.0-beta1.jar - 479,2 КБ, но файл загруженного из Programming Clojure файла - всего 2,9 МБ.Как я объяснил в здесь .Разве clojure-contrib.jar на сегодняшний день не стандартизирован?
  • Должны ли библиотеки на странице быть частью clojure-contrib?Если да, то почему leiningen's clojure-contrib.jar не имеет str-utils или repl-utils?В результате я не могу запустить (использовать 'clojure.contrib.str-utils) с leiningen (lein swank) в emacs / slime.
  • Что означает clojure.contrib.A , как показано на странице ?Насколько я знаю, (используйте 'ab) позволяет clojure найти CLASSPATH / A / B.clj для загрузки и сделать ссылку, как объяснено на стр. 18. Книга программирования Clojure. Это говорит о том, что файл A clj находится в / clojure / contribкаталог или внутри clojure-contrib.jar?
  • Как загрузить, установить и настроить библиотеки на странице ?

Добавлено

После обновления leiningen я проверил, что (Использование 'clojure.contrib.str-utils) работает отлично.Но, (используйте 'clojure.contrib.repl-utils) дает мне следующую ошибку.

  [Thrown class java.lang.IllegalStateException]

Restarts:
 0: [QUIT] Quit to the SLIME top level

Backtrace:
  0: clojure.lang.Namespace.warnOrFailOnReplace(Namespace.java:88)
  1: clojure.lang.Namespace.reference(Namespace.java:110)
  2: clojure.lang.Namespace.refer(Namespace.java:168)
  3: clojure.core$refer.doInvoke(core.clj:3288)
  4: clojure.lang.RestFn.invoke(RestFn.java:411)
  5: clojure.lang.AFn.applyToHelper(AFn.java:163)
  6: clojure.lang.RestFn.applyTo(RestFn.java:133)
  7: clojure.core$apply.invoke(core.clj:542)
  8: clojure.core$load_lib.doInvoke(core.clj:4781)
  9: clojure.lang.RestFn.applyTo(RestFn.java:143)
 --more--

(требуется 'clojure.contrib.repl-utils) работа, и я могу использовать (clojure.contrib.repl-utils / show # {}) , но (см. Clojure.contrib.repl-utils) выдает ошибку.

И вот еще несколько вопросов.

  • Почему (использование '..repl-utils) вызывает ошибку, а str-utils - нет?Какая разница между двумя библиотеками?

Ответы [ 2 ]

2 голосов
/ 02 августа 2010

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

Re: Leiningen: только что вышла новая версия. В любом случае, похоже, что у вас может быть конфликт версий.

Относительно пути к классам: источник многих неприятных проблем, пока вы не привыкнете к нему (или это было для меня). Это может быть любая из вещей, о которых вы упомянули, учитывая контекст, мы почти наверняка говорим о clojure-contrib.jar.

Для скачивания и т. Д. Существуют различные способы. Самый простой метод, практически во всех случаях, состоит в том, чтобы перечислить их как зависимость в файле project.clj для вашего проекта. Другими словами, используйте leiningen. Вы также можете скачать их с clojars . Или вы можете клонировать их репозитории на github, скомпилировать их по отдельности и скопировать в каталог lib вашего проекта. А если серьезно, просто используйте leiningen.

1 голос
/ 02 августа 2010
  1. Многие функции в clojure-contrib перенесены в ядро ​​clojure в Clojure 1.2. Разница между сейчас и 1,1 примерно такая же, как рост clojure.core.

  2. получить обновление leiningen

  3. не знаю, я просто использую leiningen

  4. Просто добавьте его в свой project.clj в leinigen

...