应用clojure

142*_*857 6 clojure

我一直关注clojure一段时间,它的一些功能非常令人兴奋(持久数据结构,功能方法,不可变状态).但是,由于我还在学习,我想了解如何在真实场景中应用,证明其好处,然后进化并应用更复杂的问题.即什么是clojure的轻松胜利(例如在电子商务设置中),可用于学习以及确定其好处.

我已经调查了基于clojure的Web框架,但我并不热衷于它们,因为它们需要手写的javascript(与gwt相比).所以对我来说,更多的是关于后端处理.有人可以解释他们应用clojure的位置(在实际部署中),以及它是如何证明有用的(以及使用clojure的缺点,如果有的话)

进一步分析:懒惰评估是Lisp强大的一个例子.Clojure是一个Lisp,具有相同的优势.因此,这种应用程序的真实世界示例(在clojure的背景下)将帮助我获得洞察力.

oct*_*bus 5

您已经提到过使用CSV文件.我发现这些非常有用,因为我必须解析一个csv文件 - 使用clojure-csv; 然后使用序列函数从该csv文件中提取某些列; 使用zipmap交错http表单字段名称; 然后使用clj-http.client对ASP应用程序进行http调用.

(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))
Run Code Online (Sandbox Code Playgroud)

该项目是一项加速的Clojure学习练习.

两个站点4Clojure.comhttp://www.cis.upenn.edu/~matuszek/cis554-2010/Assignments/clojure-01-exercises.html是开始进行Clojure练习的好地方.你可以建立在那些基础上.

此外,Clojure Google Group是一个非常有用的获取信息的地方.

宾夕法尼亚大学独联体练习,看起来很简单,给了我很多消化,尤其是获得一棵树的骨架,最近骨架问题在Google Clojure小组中得到了长时间的讨论.

祝好运.CMN