From 747ef3dcbcb100c40659805d13d966540a892319 Mon Sep 17 00:00:00 2001 From: henesy Date: Mon, 11 Mar 2019 22:20:41 -0500 Subject: add function references example --- Function-Refs/README.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'Function-Refs/README.md') 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. -- cgit v1.2.3