因為clojure的世界提倡值不可變,以藉此帶來的諸多程式設計好處。這就使得新手在處理變數的時候不知所措!以下是clojure處理變數的方法,還是將變數約束的死死的,盡量不讓它帶來不穩定因素。
(with-local-vars
[var-a "hello"]
(var-set var-a (str
@var-a " 你好"))
(println @var-a))
clojure處理可變形參的方法其實也比較簡單,即是通過&
來增加乙個元組引數以代傳入使用者放入的所有引數,函式的編寫者必須知道處理這些引數,並將這些引數的使用告知使用者。
(defn
hello [name & more]
(println
(str
name more))
; 以下是該函式測試例項,大家參考使用
(hello
"hello")
hello=> nil
(hello
"hello"
"你好")
hello("你好")=> nil
; 這裡第二個引數出現(),即表明這個引數被當成元組來處理了
Clojure學習05 謂詞函式
謂詞函式是乙個判斷式,乙個返回bool值的函式。clojure中 lisp習慣 有個規定 對於判斷功能的函式,函式名後面都有乙個 號。所以只要看到後面帶問號的函式名,就知道這一定是乙個判斷函式。1 instance?檢查值是否是某種型別 user instance?string hello true...
Clojure語言 vs Scala語言
clojure語言 vs scala語言 clojure語言 vs scala語言 我在這裡是想跟大家分享一些從world singles 系統裡獲得的經驗 早在2009年11月,我們就開始使用scala語言了。我們有乙個需要執行很長時間的操作,把大量的資料變更資訊從會員資訊資料庫中取出,以xml打...
紙片遊戲 clojure寫法
紙片玩法資料結構 資料每一格的資訊 0 1 位置獲勝資訊 本關的勝利位置 呆了幾次 比如 6 1 0 表示6 1呆了0次,3次獲勝 game levelmap 每一格的資訊 遊戲地圖 currentmap 當前關 winpoint 獲勝位置資訊 actionpoint 行動點數 turn 已進行回合...