iT邦幫忙

clojure相關文章
共有 50 則文章
鐵人賽 Software Development DAY 30
擁抱 Clojure 系列 第 30

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

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

鐵人賽 Software Development DAY 29
擁抱 Clojure 系列 第 29

技術 [第 29 天] 擁抱 Clojure:測試

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

鐵人賽 Software Development DAY 28
擁抱 Clojure 系列 第 28

技術 [第 28 天] 擁抱 Clojure:巨集

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

鐵人賽 Software Development DAY 27
擁抱 Clojure 系列 第 27

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

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

鐵人賽 Software Development DAY 26
擁抱 Clojure 系列 第 26

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

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

鐵人賽 Software Development DAY 25
擁抱 Clojure 系列 第 25

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

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

鐵人賽 Software Development DAY 24
擁抱 Clojure 系列 第 24

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

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

鐵人賽 Software Development DAY 23
擁抱 Clojure 系列 第 23

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

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

鐵人賽 Software Development DAY 22
擁抱 Clojure 系列 第 22

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

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

鐵人賽 Software Development DAY 21
擁抱 Clojure 系列 第 21

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

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

鐵人賽 Software Development DAY 20
擁抱 Clojure 系列 第 20

技術 [第 20 天] 擁抱 Clojure:與 Java 共舞(二)

與 Java 共舞(二) 從 Clojure 呼叫 Java 匿名類型 在前一章提到過的 reify 巨集,能夠用來繼承父類別,產生匿名類別: (.listFi...

鐵人賽 Software Development DAY 19
擁抱 Clojure 系列 第 19

技術 [第 19 天] 擁抱 Clojure:與 Java 共舞(一)

與 Java 共舞(一) Clojure 寄生於 Java 之中,汲取它的養分並試圖解放它的繁重。Java 有優秀的即時編譯 (Just-in-time com...

鐵人賽 Software Development DAY 18
擁抱 Clojure 系列 第 18

技術 [第 18 天] 擁抱 Clojure:資料型態與協定(二)

資料型別與協定(二) 擴充 雖然可以使用 deftype、defrecord 或 reify 實作介面或協定,但是缺點是必須在定義型別時就確認,Clojure...

鐵人賽 Software Development DAY 17
擁抱 Clojure 系列 第 17

技術 [第 17 天] 擁抱 Clojure:資料型別與協定(一)

資料型別與協定(一) 計算機科學有兩大難題:快取失效,爲事物命名以及差一錯誤。 — 菲爾•卡爾頓 我們以程式語言中的物件,數值與函式形塑真實世界,雖然 Cl...

鐵人賽 Software Development DAY 16
擁抱 Clojure 系列 第 16

技術 [第 16 天] 擁抱 Clojure:命名空間與專案(三)

命名空間與專案(三) 編輯器 俗話說:工欲善其事,必先利其器。好的編輯器能夠讓你更輕鬆地輸入程式、容易地測試程式,或是提供有用的資訊修正錯誤。以下介紹開發 Cl...

鐵人賽 Software Development DAY 15
擁抱 Clojure 系列 第 15

技術 [第 15 天] 擁抱 Clojure:命名空間與專案(二)

命名空間與專案(二) 命名空間 保護資訊 以上的函式都會引用到命名空間中的公開資訊,如果有些資訊想要隱藏不被使用,可以在使用 def 設立 Vars 物件時加上...

鐵人賽 Software Development DAY 14
擁抱 Clojure 系列 第 14

技術 [第 14 天] 擁抱 Clojure:命名空間與專案(一)

命名空間與專案(一) 我心裡一直都在暗暗設想,天堂應該是圖書館的模樣。 — 波赫士《關於天賜的詩》 本篇文章將介紹組織程式碼的方法,包括以類似功能或屬性歸類...

鐵人賽 Software Development DAY 13
擁抱 Clojure 系列 第 13

技術 [第 13 天] 擁抱 Clojure:流程控制(三)

流程控制(三) 列表推導 Clojure 中的 for 與一般程式語言的 for 不同,它利用一個群集作爲來源,運用運算式以及條件式產生新的群集,這稱作列表推導...

鐵人賽 Software Development DAY 12
擁抱 Clojure 系列 第 12

技術 [第 12 天] 擁抱 Clojure:流程控制(二)

流程控制(二) 迭代 由於 Clojure 中的資料結構都是不可變 (Immutable),所以沒有主流程式語言的 for 迴圈,因爲 for 迴圈需要在每次迭...

鐵人賽 Software Development DAY 11
擁抱 Clojure 系列 第 11

技術 [第 11 天] 擁抱 Clojure:流程控制(一)

流程控制(一) 流程控制是枝幹、河流與道路,將如同樹葉、土地與城市一樣的函式連結起來,藉由流程控制,程式可以選擇行走的方向,前進後退、左右轉或是不斷反覆。 本篇...

鐵人賽 Software Development DAY 10
擁抱 Clojure 系列 第 10

技術 [第 10 天] 擁抱 Clojure:繫結與函式(四)

遞迴 一般遞迴 遞迴是函式透過不斷呼叫自己,將問題切割成數個細小問題逐個解決之後,把結果統整起來的問題解決方式。函數式程式設計語言透過遞迴達成迴圈可以做到的事。...

鐵人賽 Software Development DAY 9
擁抱 Clojure 系列 第 9

技術 [第 09 天] 擁抱 Clojure:繫結與函式(三)

繫結與函式(三) 函式 高階函式 之前提到,函式在 Clojure 中是一等公民,像資料一樣,可以當成參數傳遞給其它函式,或可以被當成返回值傳遞。而可以做到其中...

鐵人賽 Software Development DAY 8
擁抱 Clojure 系列 第 8

技術 [第 08 天] 擁抱 Clojure:繫結與函式(二)

繫結與函式(二) 函式 多載 Java 中將類別裡擁有數個同樣名字的方法 (Method),參數個數卻不同稱爲多載 (Overloading),Clojure...

鐵人賽 Software Development DAY 7
擁抱 Clojure 系列 第 7

技術 [第 07 天] 擁抱 Clojure:繫結與函式(一)

繫結與函式(一) 函式是函數式程式設計的核心,雖然各個流派談及函數式程式設計,都有自己的定見和看法,但是不變的核心仍然是函式,函式必須是程式語言的第一級公民 (...

鐵人賽 Software Development DAY 6
擁抱 Clojure 系列 第 6

技術 [第 06 天] 擁抱 Clojure:資料結構與型態(三)

資料結構與型態(三) 群集 Clojure 的複合型別稱爲群集 (Collection),可以容納基本型別跟複合型別,所有的群集都是不可變 (Immutable...

鐵人賽 Software Development DAY 5
擁抱 Clojure 系列 第 5

技術 [第 05 天] 擁抱 Clojure:資料結構與型態(二)

資料結構與型態(二) 字串與字符 Clojure 的字串即是 Java 的 String 類型,表現方法也跟 Java 一樣用雙引號包住文字: (class &...

鐵人賽 Software Development DAY 4
擁抱 Clojure 系列 第 4

技術 [第 04 天] 擁抱 Clojure:資料結構與型態(一)

資料結構與型態(一) 本篇文章將介紹 Clojure 內建的的資料結構與型態,會先從簡單的資料型態如數字及字串開始,再介紹複雜的資料結構如群集 (Collect...

鐵人賽 Software Development DAY 3
擁抱 Clojure 系列 第 3

技術 [第 03 天] 擁抱 Clojure:基本組成(二)

基本組成(二) 資料型態 布林 Clojure 程式語言使用 true 和 false 來表示邏輯上的真與假: true ;; => true false...

鐵人賽 Software Development DAY 2
擁抱 Clojure 系列 第 2

技術 [第 02 天] 擁抱 Clojure:基本組成(一)

基本組成(一) 運算式 Clojure 程式是由許多運算式 (Expression) 組合而成。在 Clojure 中,Expression (運算式) 也被稱...

鐵人賽 Software Development DAY 1
擁抱 Clojure 系列 第 1

技術 [第 01 天] 擁抱 Clojure:前言

前言 世界太新,很多事物還沒有名字,必須用手指頭伸手去指。 — 賈西亞•馬奎茲《百年孤寂》 Clojure 是什麼 Clojure 從 2007 年由創始人...