47 lines
894 B
Markdown
47 lines
894 B
Markdown
![]() |
---
|
||
|
title: "Functions"
|
||
|
excerpt: "Documentation of the KCL language for the Zoo Design Studio."
|
||
|
layout: manual
|
||
|
---
|
||
|
|
||
|
We have support for defining your own functions. Functions can take in any
|
||
|
type of argument. Below is an example of the syntax:
|
||
|
|
||
|
```
|
||
|
fn myFn(x) {
|
||
|
return x
|
||
|
}
|
||
|
```
|
||
|
|
||
|
As you can see above `myFn` just returns whatever it is given.
|
||
|
|
||
|
KCL uses keyword arguments:
|
||
|
|
||
|
```
|
||
|
// If you declare a function like this
|
||
|
fn add(left, right) {
|
||
|
return left + right
|
||
|
}
|
||
|
|
||
|
// You can call it like this:
|
||
|
total = add(left = 1, right = 2)
|
||
|
```
|
||
|
|
||
|
Functions can also declare one *unlabeled* arg. If you do want to declare an unlabeled arg, it must
|
||
|
be the first arg declared.
|
||
|
|
||
|
```
|
||
|
// The @ indicates an argument is used without a label.
|
||
|
// Note that only the first argument can use @.
|
||
|
fn increment(@x) {
|
||
|
return x + 1
|
||
|
}
|
||
|
|
||
|
fn add(@x, delta) {
|
||
|
return x + delta
|
||
|
}
|
||
|
|
||
|
two = increment(1)
|
||
|
three = add(1, delta = 2)
|
||
|
```
|