📅  最后修改于: 2023-12-03 15:08:35.285000             🧑  作者: Mango
在 Clojure 中创建函数非常简单。Clojure 的函数定义语法类似于其它函数式编程语言,它有两个元素:参数列表和函数体。
我们来创建一个简单的函数,它接受一个参数并将其平方。
(defn square [x]
(* x x))
这个函数定义了一个名为 square
的函数,它有一个参数 x
。函数体是 (* x x)
,它将参数 x
平方并返回结果。要调用这个函数,您可以使用以下代码:
(square 5)
;; 输出: 25
您可以在参数列表中包含多个参数来创建接受多个参数的函数。以下是一个将两个数字相加的函数的示例:
(defn add [x y]
(+ x y))
这个函数定义了一个名为 add
的函数,它接受两个参数 x
和 y
。函数体是 (+ x y)
,它将这两个参数相加并返回结果。调用此函数的方法如下:
(add 2 3)
;; 输出: 5
有时您想定义函数,可以接受不定数量的参数。这种情况下,您可以在参数列表中使用 &
符号来定义可变数量的参数。下面是一个示例:
(defn sum [& nums]
(apply + nums))
这个函数定义了一个名为 sum
的函数,它接受任意数量的参数。在函数参数列表中,& nums
表示 Clojure 在内部将这些参数打包成一个列表 nums
。apply
函数将 +
和 nums
作为参数传递给函数,将列表中的所有数字相加。调用此函数的方法如下:
(sum 1 2 3 4)
;; 输出: 10
您还可以使用 fn
声明匿名函数。使用匿名函数时,您不需要为其分配名称,而是将其作为参数传递给其它函数。
以下是一个接受两个参数并返回它们的和的匿名函数的示例:
((fn [x y] (+ x y)) 2 3)
;; 输出: 5
请注意,上述代码确实包含三组括号。首先是最外层括号,它表示将函数作为参数传递给另一个函数。第二组括号是匿名函数的括号。第三组括号包含参数。
在 Clojure 中创建函数很简单。通过参数列表和函数体定义函数,并使用它们来接受输入和返回输出。将参数打包成列表来接受可变数量的参数,而使用 fn
声明匿名函数。