Update Definition
@@ -55,3 +55,32 @@ The following evaluates to 5:
|
|||||||
x
|
x
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## defn
|
||||||
|
|
||||||
|
macro: (defn _sym_ _lambda-list_ . _body_)
|
||||||
|
|
||||||
|
defn defines a new function in the default global environment.
|
||||||
|
|
||||||
|
defn is a shorter way to define functions. It is a macro defined in the standard library. The following code:
|
||||||
|
|
||||||
|
```
|
||||||
|
(defn my-add (a b)
|
||||||
|
(+ a b))
|
||||||
|
```
|
||||||
|
|
||||||
|
... is equivalent to a combination of `def` and `fn`, as seen below:
|
||||||
|
|
||||||
|
```
|
||||||
|
(def my-add (fn (a b)
|
||||||
|
(+ a b)))
|
||||||
|
```
|
||||||
|
|
||||||
|
The body may be comprised of many forms. In this case, the entire body code is pasted directly into the `fn` form.
|
||||||
|
As in `fn`, the entire body of the function will be executed when the declared function is called, and the
|
||||||
|
value of the last expression executed is returned as the value of the function call.
|
||||||
|
|
||||||
|
## defmacro
|
||||||
|
|
||||||
|
macro: (defmacro _sym_ _lambda-list_ . _body_)
|
||||||
|
|
||||||
|
defmacro is similar to `defn`, with the exception that it defines a new macro in the default global environment.
|
||||||
Reference in New Issue
Block a user