[clojure/cn]Wrap some lines to fit the view.

This commit is contained in:
jingege 2014-01-06 09:30:18 +08:00
parent b93df3fee7
commit 72de48f9e2

View File

@ -163,11 +163,13 @@ x ; => 1
; 哈希表
;;;;;;;;;;
; 基于hash的map和基于数组的map即arraymap实现了相同的接口hashmap查询起来比较快但不保证元素的顺序。
; 基于hash的map和基于数组的map即arraymap实现了相同的接口hashmap查询起来比较快
; 但不保证元素的顺序。
(class {:a 1 :b 2 :c 3}) ; => clojure.lang.PersistentArrayMap
(class (hash-map :a 1 :b 2 :c 3)) ; => clojure.lang.PersistentHashMap
; arraymap在足够大的时候大多数操作会将其自动转换成hashmap所以不用担心(对大的arraymap的查询性能)。
; arraymap在足够大的时候大多数操作会将其自动转换成hashmap
; 所以不用担心(对大的arraymap的查询性能)。
; map支持很多类型的key但推荐使用keyword类型
; keyword类型和字符串类似但做了一些优化。
@ -275,7 +277,7 @@ keymap ; => {:a 1, :b 2, :c 3}
(str/replace "This is a test." #"[a-o]" str/upper-case) ; => "THIs Is A tEst."
; (#""用来表示一个正则表达式)
; 你可以在一个namespace定义里用`:require`的方式来requireuse但最好不要用模块。
; 你可以在一个namespace定义里用:require的方式来require或use但最好不要用模块。
; 这样的话你无需引用模块列表。
(ns test
(:require
@ -314,12 +316,14 @@ keymap ; => {:a 1, :b 2, :c 3}
; STM
;;;;;;;;;;;;;;;;;
; 软件内存事务Software Transactional Memory被clojure用来处理持久化的状态。clojure里内置了一些结构来使用STM。
; 软件内存事务Software Transactional Memory被clojure用来处理持久化的状态。
; clojure里内置了一些结构来使用STM。
; atom是最简单的。给它传一个初始值
(def my-atom (atom {}))
; 用`swap!`更新atom。
; `swap!`会以atom的当前值为第一个参数来调用一个指定的函数`swap`其余的参数作为该函数的第二个参数。
; `swap!`会以atom的当前值为第一个参数来调用一个指定的函数
; `swap`其余的参数作为该函数的第二个参数。
(swap! my-atom assoc :a 1) ; Sets my-atom to the result of (assoc {} :a 1)
(swap! my-atom assoc :b 2) ; Sets my-atom to the result of (assoc {:a 1} :b 2)