優雅的函數式編程--Clojure概述

歡迎轉載,轉載請註明出處,徽滬一郎。java

楔子

因爲閱讀storm源碼的緣由,頭一次接觸到Clojure。沒有花特別的時間來研究clojure語法,只是在一些特殊的用法時,才查了一下clojure官網的文檔,基本上可以很快的理解其意思。c++

在理解了storm中的基本處理流程以後,花了一段時間好好的看了幾本clojure編程的書籍,書籍名稱及評價分別以下。編程

  1. clojure programming 介紹了clojure語言的基本特色,同時對於clojure的工程實踐作了比較詳細的介紹
  2. programming clojure 重點所有在於介紹clojure語言的特色,對於clojure在實際中的應用介紹比較簡略,我的覺得在對clojure語言自己的介紹方面,這本要優於上面提到的clojure programming一書
  3. the joy of clojure  該書籍從一個比較高的層面來思考clojure爲何要設計成這樣,有點相似於c++中的c++沉思錄一類的

語言概述

clojure是龐大的lisp編程語言家族中的一個新成員,因此其有lisp語言的鮮明特徵,一切皆函數。併發

clojure語言的核心主要涉及以下幾個部分。編程語言

  1. 函數式編程
    1. 數據類型
    2. 條件判斷語句,循環控制語句
    3. 集合 如set,list,vector, map
    4. sequence 這個是很是特殊的一部分,從傳統的c或java轉換到clojure編程,經常容易在這卡住
    5. 函數
      1. 變量聲明
      2. 集合解構
    6. (特點所在)
  2. 併發編程 (concurrent programming)
    1. STM
  3. 面向對象 clojure吸取並借鑑了object-oriented的編程語言的一些優勢,
    1. 函數重載 defmulti
    2. 接口 defprotocol 解決is-a的問題

       

練習

clojure的語法很是簡潔優雅,花不了半天的時間就能大致知道個大概,但要想完全的掌握仍是須要大量的練習才行。函數式編程

哪些題目值得花時間,哪些不值一提,這個已經有人想到了,並搞了個很好的網站。http://www.4clojure.com 到該網站註冊一個用戶名,總共150道題,難度由淺入深,是不可多得的學習資源。函數

clojure中的語法糖不是特別多,但想一個不落的記處仍是有點累,爲此徹底能夠將clojure cheatsheet放置在辦公桌最顯眼的地方,很少就兩張A4張。http://clojure.org/cheatsheet學習

相關文章
相關標籤/搜索