В Clojure, какие еще самые важные функции в ядре Clojure нужно освоить, чтобы быть продуктивным?

Помимо сопоставления, фильтрации, сокращения множества других функций в ядре clojure, которые являются следующим набором наиболее полезных/часто используемых функций, которые я должен научиться быть продуктивными?

Ответ 1

Если вы перейдете на страницу проблем 4clojure и выполните поиск "основных функций", вы найдете кучу, которую команда 4clojure находит полезной. Назвать несколько:

  • группа по
  • отчетливый
  • сокращения
  • частоты
  • раздел
  • слиться с
  • прослаивать
  • вклиниваться

Ответ 2

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

ps: специальный крик for, reductions, iterate

Ответ 3

Чит-лист полезен: http://clojure.org/cheatsheet, и не занимает много времени, чтобы читать.

Ответ 4

Ваш список карт, фильтров и сокращений охватывает некоторые из них, поэтому добавление в этот список, вероятно, дублирует то, что вы уже знаете.

Одной из сильных сторон Clojure является синхронизация. Я бы начал писать образец кода, чтобы узнать, как использовать эти конструкции синхронизации, refs, агенты и атомы. Обложка многих книг Clojure. Я знаю, что Clojure в Action очень хорошо справляется с этим.

Я работал бы с картами, хотя я специально не ссылаюсь на функцию, но на то, почему карты хороши как в целом, так и в разных методах.

Наконец, я бы работал с тем, почему иногда вам нужно использовать цикл... recur. Совет, который я получил за прошлые годы 1+, был очень прочным. Используйте его, когда вам абсолютно необходимо.

Ответ 5

Несколько, с которыми мне трудно жить:

  • inc/dec - для циклов, рекурсии, исправлений по отдельности и т.д.
  • assoc - для обновления карт
  • comp - для составления функций более высокого порядка
  • partial - построение функции более высокого порядка с подмножеством аргументов
  • apply - для передачи вектора аргументов функции
  • conj - для добавления в коллекцию (любого типа)
  • first/next - для управления последовательностями с головного конца
  • seq - для создания последовательности или тестирования для пустых последовательностей с (if (seq x)...)

Есть также несколько специальных форм/макросов, которые не являются строго функциями, но вы также найдете довольно существенным - например, fn, loop/recur, cond and/or, for, doseq, let и т.д.

Ответ 6

сокращение, минус, первый, отдых, цикл/повтор, fn и [деструктурирование] являются наиболее часто используемыми формами. edit: oh and partition - бог, что полезная функция!

Ответ 7

делать

Я думаю, что когда вы впервые используете Clojure, вы будете использовать "делать" все время, просто чтобы вы могли заработать все, так как это позволяет вам программировать императивно. По мере того, как ваш ноу-хау Clojure увеличивается, вы обнаружите, что ваше использование "do" уменьшается