Update docs/gettingstarted.md:
Add sub-sections about function parameters + function calls and a new section about comments.
This commit is contained in:
parent
abf2747588
commit
dcbefc1a59
|
@ -11,7 +11,7 @@ getHelloWorld: ~String => {
|
||||||
return "Hello, World!"
|
return "Hello, World!"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
<sub>`~String` can be omitted, see [#3](#3---types).</sub>
|
The type (~String here) can be omitted, see [#3](#3---types).
|
||||||
|
|
||||||
Note that you can make `getHelloWorld` final by replacing `=>` with `#=>`.
|
Note that you can make `getHelloWorld` final by replacing `=>` with `#=>`.
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ String getHelloWorld >> {
|
||||||
return "Hello, World!"
|
return "Hello, World!"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2.1 - Main
|
### 2.1 - Main
|
||||||
Main can be a variable named `main` that contains an anonymous function, a function named `main` or a function that has the `as_main` attribute:
|
Main can be a variable named `main` that contains an anonymous function, a function named `main` or a function that has the `as_main` attribute:
|
||||||
```
|
```
|
||||||
|
@ -29,6 +30,38 @@ main >> {}
|
||||||
as_main helloWorld >> {}
|
as_main helloWorld >> {}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 2.2 - Function parameters
|
||||||
|
Parameters can be added to an anonymous function by specifying the types as follows:
|
||||||
|
```
|
||||||
|
addIntToString (int, String) => { a, b;
|
||||||
|
println(b + a)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Named functions can have parameters **(with mandatory names)** like in this example:
|
||||||
|
```
|
||||||
|
addIntToString(a: Int, b: String) => {
|
||||||
|
println(b + a)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2.3 - Function calls
|
||||||
|
A function can be simply invoked like this if it has no parameters:
|
||||||
|
```
|
||||||
|
helloWorld()
|
||||||
|
```
|
||||||
|
If a function does have parameters, you can call it with arguments in the right order; if the function is not anonymous, it's also possible to call it by using the names of the corresponding parameters:
|
||||||
|
```
|
||||||
|
addNumbers(int a, int b, int c, int d) >> {
|
||||||
|
println(a + b + c + d)
|
||||||
|
}
|
||||||
|
helloWorld(1, 2, 3, 4) # Call without names
|
||||||
|
helloWorld(a = 1, b = 2, c = 3, d = 4) # Call with names
|
||||||
|
helloWorld(1, c = 3, b = 2, d = 4)
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that println is the only function that will get transpiled to its equivalent.
|
||||||
|
|
||||||
## 3 - Types
|
## 3 - Types
|
||||||
Types are *inferred*, which means that specifying types of variables or returned values is optional.
|
Types are *inferred*, which means that specifying types of variables or returned values is optional.
|
||||||
|
|
||||||
|
@ -43,4 +76,12 @@ The attributes mentioned above can also be used as a return type for functions/a
|
||||||
```
|
```
|
||||||
helloWorld: ~dynamic => { return 0 }
|
helloWorld: ~dynamic => { return 0 }
|
||||||
dyn helloWorld >> { return 0 }
|
dyn helloWorld >> { return 0 }
|
||||||
|
```
|
||||||
|
|
||||||
|
## 4 - Comments
|
||||||
|
You can add comments to your code; see the following examples showcasing the available syntaxes:
|
||||||
|
```
|
||||||
|
# This is a simple comment
|
||||||
|
// This is another comment
|
||||||
|
int # This is a compact comment, you can insert it pretty much anywhere # a = 1
|
||||||
```
|
```
|
Loading…
Reference in New Issue