применяя clojure - PullRequest
       1

применяя clojure

6 голосов
/ 18 сентября 2011

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

Я исследовал веб-фреймворки на основе clojure, но я не заинтересован вих, так как им нужен рукописный javascript (в отличие от gwt).Так что для меня это больше о бэкэнд-обработке.Может кто-нибудь объяснить, где они применили clojure (в реальных развертываниях), и как он оказался полезным (и минусы, если таковые имеются, использования clojure)

Дальнейший анализ: Ленивая оценка - это частый пример мощи Lisp,Clojure, будучи Лиспом, предлагает такое же преимущество.Таким образом, реальный пример такого приложения (в контексте clojure) поможет мне понять.

1 Ответ

5 голосов
/ 19 сентября 2011

Вы упомянули, что работаете с файлами CSV. Я обнаружил, что они очень полезны, потому что мне нужно было проанализировать файл csv - used clojure-csv; затем извлеките определенные столбцы из этого CSV-файла, используя функции последовательности; чередовать имена полей формы http с помощью zipmap; а затем выполните http-вызовы ASP-приложения, используя clj-http.client.

(def accumail-url-keys ["CA", "STREET", "STREET2", "CITY", "STATE", "ZIP", "YR", "BILL_NO", "BILL_TYPE"] )
.
.
.

(defn ret-params 
    "Generates all q-parameters and returns them in a vector of vectors."
    [all-csv-rows]
    (reduce
      (fn [param-vec one-full-csv-row]
        (let [q-param (zipmap accumail-url-keys one-full-csv-row)
              accu-q-param (first (rest (split-at 3 q-param)))
              billing-param (first (split-at 3 q-param))]
          (conj param-vec [accu-q-param billing-param])))
      []
      all-csv-rows))

Этот проект был ускоренным обучающим упражнением Clojure.

Два сайта 4Clojure.com и http://www.cis.upenn.edu/~matuszek/cis554-2010/Assignments/clojure-01-exercises.html - это хорошие места для начала работы над упражнениями Clojure. Вы можете построить на них.

Также Clojure Google Group является очень полезным местом для получения информации.

Упражнения Univ of Penn CIS, какими бы простыми они ни казались, позволили мне многое переварить, особенно получить скелет дерева, и недавно проблема скелета получила длительное обсуждение в группе Google Clojure.

Удачи. стп

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...