diff options
| -rw-r--r-- | Function-Refs/README.md | 21 | ||||
| -rw-r--r-- | Function-Refs/funcrefs.b | 6 | ||||
| -rw-r--r-- | README.md | 1 |
3 files changed, 23 insertions, 5 deletions
diff --git a/Function-Refs/README.md b/Function-Refs/README.md index 09a6715..1b2dd5b 100644 --- a/Function-Refs/README.md +++ b/Function-Refs/README.md @@ -6,14 +6,31 @@ The example in this section is a derivative of the function reference summary in ## Source -### +### funcrefs.b:18,34 +The variable `fp` is a name whose type is a reference to a function with a given argument and return value scheme. A function which fulfills this scheme can be used to set the reference, in this case the `cmp()` function is referenced by `fp`. +### funcrefs.b:36,46 -## Demo +The `sort()` function takes a function reference as an argument, using it as a comparator. In this case `cmp()` and `rcmp()` are passed as a function reference argument. + +### funcrefs.b:48,53 +The `choose()` function returns a reference to a function, being called in this case to return a given comparator with the comparator being called in-line. + +## Demo + ; limbo funcrefs.b + ; funcrefs + Matched smiley! + Did not match duck + [ d b c a] + [ a b c d] + [ d c b a] + quack ≥ quack + ; ## Exercises - Change the value of `c` to 1, what happens? +- Write a function which returns a function which returns a function. diff --git a/Function-Refs/funcrefs.b b/Function-Refs/funcrefs.b index d4b7259..deb6ed1 100644 --- a/Function-Refs/funcrefs.b +++ b/Function-Refs/funcrefs.b @@ -47,10 +47,10 @@ init(nil: ref Draw->Context, nil: list of string) { c := 0; - if(choose(c)("quack", "quack") <= 0) - print("quack ≤ quack\n"); + if(choose(c)("quack", "quack") >= 0) + print("quack ≥ quack\n"); else - print("quack > quack\n"); + print("quack < quack\n"); exit; } @@ -36,6 +36,7 @@ You could then run said file with: - [Switch Case](./Switch) - [Arrays](./Arrays) - [Functions](./Functions) +- [Function References](./Function-Refs) - [Generics, Picks, and Interfaces (kind of)](./Generics) ## References |
