• 函数
    • 基本定义
    • 调用函数

    函数

    基本定义

    最简单的函数定义是:

    1. (defn f1 [x y]
    2. (+ x y))
    3. ; #'cljs.user/f1

    借助匿名函数也可以函数定义, 不过这样可能损失一些静态检查的好处:

    1. (def f2 (fn [x y]
    2. (+ x y)))
    3. ; #'cljs.user/f2

    如果函数参数个数不确定, 可以用 & 把后边的参数合并成一个 list:

    1. (defn f3 [x1 & xs]
    2. (print x1)
    3. (print xs))
    4. ; #'cljs.user/f3

    根据参数个数的不同, 函数可以被重载:

    1. (defn f4 [x] (+ x 1))
    2. ; #'cljs.user/f4
    3. (defn f4 [x y] (+ x y 1))
    4. ; #'cljs.user/f4

    也可以简写在一个表达式当中:

    1. (defn f4
    2. ([x] (+ x 1))
    3. ([x y] (+ x y 1)))
    4. ; #'cljs.user/f4

    调用函数

    函数调用比较简单, 注意有个 apply 函数可以改变参数的传递方式:

    1. (f1 1 2)
    2. ; 3
    3. (apply f1 (list 1 2))
    4. ; 3