From dcbefc1a59662af3adc7b5df88a62bcfdb6d406b Mon Sep 17 00:00:00 2001 From: Username404 Date: Sat, 31 Jul 2021 22:20:56 +0200 Subject: [PATCH] Update docs/gettingstarted.md: Add sub-sections about function parameters + function calls and a new section about comments. --- docs/gettingstarted.md | 43 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/docs/gettingstarted.md b/docs/gettingstarted.md index a1e419f..731e24f 100644 --- a/docs/gettingstarted.md +++ b/docs/gettingstarted.md @@ -11,7 +11,7 @@ getHelloWorld: ~String => { return "Hello, World!" } ``` -`~String` can be omitted, see [#3](#3---types). +The type (~String here) can be omitted, see [#3](#3---types). Note that you can make `getHelloWorld` final by replacing `=>` with `#=>`. @@ -21,6 +21,7 @@ String getHelloWorld >> { return "Hello, World!" } ``` + ### 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: ``` @@ -29,6 +30,38 @@ main >> {} 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 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 } 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 ``` \ No newline at end of file