跳转到内容

Clojure 编程/示例/API 示例/数据结构

来自维基教科书,开放世界中的开放书籍

返回 nums 的总和。(+) 返回 0。

(+ [] [x] [x y] [x y & more])

user=> (+ 1 2 3)
6
user=> (map + [1 2 3] [1 1 2])
(2 3 5)

如果未提供任何 ys,则返回 x 的否定,否则从 x 中减去 ys 并返回结果。

(- [x] [x y] [x y & more])

user=> (- 1 2 3)
-4
user=> (- -1)
1

返回 nums 的乘积。(*) 返回 1。

(* [] [x] [x y] [x y & more])

user=> (* 1 2 3 4)
24

如果未提供任何分母,则返回 1/分子,否则返回分子除以所有分母的结果。

(/ [x] [x y] [x y & more])

user=> (/ 1 4)
1/4

返回比 num 大 1 的数字。

(inc [x])

user=> (inc 41) 
42
user=> (inc 1/4)
5/4

返回比 num 小 1 的数字。

(dec [x])

user=> (dec 99)
98
user=> (map dec [2 3 4])
(1 2 3)

返回 nums 中最小的数字。

(min [x] [x y] [x y & more])

user=> (min 2 -1 3)
-1

返回 nums 中最大的数字。

(max [x] [x y] [x y & more])

user=> (max 2 -1 3)
3

分子除以分母的商。

(quot [num div])

user=> (quot 4 2)
2
user=> (quot 5 2)
2
user=> (quot 6 2)
3

分子除以分母的余数。

(rem [num div])

user=> (rem 5 2) 
1
user=> (rem 4 2)
0

rationalize

[编辑 | 编辑源代码]

返回 num 的有理值。

(rationalize [num])

user=> (rationalize 1.33)      
133/100
user=> (rationalize 3.14159265)
62831853/20000000
user=> (rationalize (Math/sqrt 2))        
14142135623730951/10000000000000000

如果 nums 的值都相同,则返回非 nil,否则返回 false。

(== [x] [x y] [x y & more])

user=> (== (+ 1 2) 3)
true
user=> (== (+ 1 2) 3 2.999)
false
user=> (if (== 2 (+ 1 1)) (println "So easy!"))
So easy!
user=> (== true true) ;Be careful! Works only for nums. 
false
user=> (= true true) ;= works like Java x.equals(y)
true

如果 nums 呈单调递增顺序,则返回非 nil,否则返回 false。

(< [x] [x y] [x y & more])

user=> (< 1 (Math/sqrt 2) (+ 1 1))
true
user=> (< 5 5)                      
false
user=> (< 5)
true

如果 nums 呈单调递减顺序,则返回非 nil,否则返回 false。

(> [x] [x y] [x y & more])

user=> (> 7 6 4 2)
true
user=> (> 2 4)    
false

如果 nums 呈单调非递减顺序,则返回非 nil,否则返回 false。

(<= [x] [x y] [x y & more])

user=> (<= 0 1 1)
true

如果 nums 呈单调非递增顺序,则返回非 nil,否则返回 false。

(>= [x] [x y] [x y & more])

user=> (>= 3 2 1)
true

如果 num 为零,则返回 true,否则返回 false。

(zero? [x])

user=> (zero? 0.01) 
false
user=> (zero? 0)   
true

如果 num 大于零,则返回 true,否则返回 false。

(pos? [x])

user=> (pos? 0)        
false
user=> (pos? (Math/PI))
true
user=> (filter pos? [-1 1 0 -1 5 2])
(1 5 2)

如果 num 小于零,则返回 true,否则返回 false。

(neg? [x])

user=> (neg? -1)       
true
user=> (neg? 0) 
false

字符串

[编辑 | 编辑源代码]
user=> (str "a" :b \c 3 4.5 6/7)
"a:bc34.56/7"
user=> (str [1 2])
"[1 2]"
user=> (str 1 2)
"12"
user=> (str #(1))
"user$eval__1289$fn__1291@4f53dd"
user=> \a
\a
user=> (seq "a")
\a
user=> (seq " ")
(\space)
user=> (char 13)
\return
user=> (str \a \b \c)
"abc"
user=> (char? \z)
true
华夏公益教科书