clojure學習筆記

2021-08-25 22:26:01 字數 644 閱讀 9553

因為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 已進行回合...