iT邦幫忙

鐵人檔案

2018 iT 邦幫忙鐵人賽
回列表
Software Development

擁抱 Clojure 系列

Clojure 是一門建立在 JVM 上的 Lisp 方言。它將腳本語言的互動便利性,以及用於多執行緒程式設計的穩健基礎結合起來;它是一種編譯語言,卻保留了動態語言的強大。它提供了簡易的方法,可以輕鬆地存取 Java 函式庫。

Clojure 奉行「程式即爲數據」的 Lisp 哲學,並引入了強大的巨集系統;Clojure 亦是函數式程式語言,更爲了現今多核處理器的開發需求,提供了狀態管理的系統,以確保清晰、正確的多執行緒程式設計。

透過這一系列文章,希望帶領讀者體會及了解 Clojure 語言的優雅、強大與實用,進而在實戰環境中使用 Clojure、擁抱 Clojure。

鐵人鍊成 | 共 30 篇文章 | 14 人訂閱 訂閱系列文 RSS系列文
DAY 21

[第 21 天] 擁抱 Clojure:與 Java 共舞(三)

與 Java 共舞(三) 從 Clojure 呼叫 Java 有用的工具函式 doto doto 巨集將第一個參數傳遞給其後運算式當作第一個參數。它將以下層疊的...

2018-01-09 ‧ 由 林萌 分享
DAY 22

[第 22 天] 擁抱 Clojure:讀取器與詮釋資料(一)

讀取器與詮釋資料 你就要開始讀伊塔羅•卡爾維諾的新小說《如果在冬夜,一個旅人》。 — 卡爾維諾《如果在冬夜,一個旅人》 Clojure 程式開始於一串文字,...

2018-01-10 ‧ 由 林萌 分享
DAY 23

[第 23 天] 擁抱 Clojure:讀取器與詮釋資料(二)

讀取器與詮釋資料(二) 詮釋資料 (Metadata) 詮釋資料是添加在符號或群集中的映射,其中記載了該符號或群集的資訊。使用 with-meta 函式添加詮釋...

2018-01-11 ‧ 由 林萌 分享
DAY 24

[第 24 天] 擁抱 Clojure:並行與併發(一)

並行與併發(一) 建構軟體設計有兩種方式:一種是簡單明顯地沒有缺陷,另一種則是複雜到沒有明顯的缺陷。 — 東尼•霍爾 現代計算機系統走向多核,爲了運用多核心...

2018-01-12 ‧ 由 林萌 分享
DAY 25

[第 25 天] 擁抱 Clojure:並行與併發(二)

並行與併發(二) 並行 pmap 先前的章節已經看過的 map 函式,功能是將群集的各個元素套用到函式之中,產生新的群集。如果被套用的函式需要長時間的運算,等待...

2018-01-13 ‧ 由 林萌 分享
DAY 26

[第 26 天] 擁抱 Clojure:並行與併發(三)

並行與併發(三) 狀態管理與併發 參考類型 Ref Clojure 使用了軟體事務存儲 (Software Transactional Memory,之後簡稱...

2018-01-14 ‧ 由 林萌 分享
DAY 27

[第 27 天] 擁抱 Clojure:並行與併發(四)

並行與併發(四) 狀態管理與併發 參考類型 Agent 有別於 Ref 與原子類型的協調式與同步式,Agent 類型狀態的更新不需與其他狀態更新協同合作,也不需...

2018-01-15 ‧ 由 林萌 分享
DAY 28

[第 28 天] 擁抱 Clojure:巨集

巨集 授人以 Fortran 得 Fortran,授人以 Lisp 得所喜之語言。 — 蓋伊·史提爾二世《The Seasoned Schemer》 LIS...

2018-01-16 ‧ 由 林萌 分享
DAY 29

[第 29 天] 擁抱 Clojure:測試

測試 你是否有過這樣的經驗:本來只是修改了 A 部分的程式,結果改完之後 B 部分的程式竟然不正常;或者是以前早就改好的問題,在這次改版之後又出現了呢?當有這些...

2018-01-17 ‧ 由 林萌 分享
DAY 30

[第 30 天] 擁抱 Clojure:下一步

下一步 回顧 你從一無所知,到現在對 Clojure 有了初步的認識。首先知道了 Clojure 的基本組成以及資料結構與型態,接着學會了如何建立繫結與函式,知...

2018-01-18 ‧ 由 林萌 分享