diff options
Diffstat (limited to 'stdlib/source/documentation/lux/control/function/memo.lux')
-rw-r--r-- | stdlib/source/documentation/lux/control/function/memo.lux | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/stdlib/source/documentation/lux/control/function/memo.lux b/stdlib/source/documentation/lux/control/function/memo.lux new file mode 100644 index 000000000..823b49772 --- /dev/null +++ b/stdlib/source/documentation/lux/control/function/memo.lux @@ -0,0 +1,36 @@ +(.module: + [library + [lux (#- if loop) + ["$" documentation (#+ documentation:)] + [data + [text (#+ \n) + ["%" format (#+ format)]]] + [macro + ["." template]]]] + [\\library + ["." /]]) + +(documentation: /.open + "Memoization where the memoized results can be re-used accross invocations." + [(open memo)]) + +(documentation: /.closed + (format "Memoization confined to a single invocation to the function (not counting any subsequent recursive invocations)." + \n "Memoized results will be re-used during recursive invocations, but cannot be accessed after the main invocation has ended.") + [(closed hash memo)]) + +(documentation: /.none + (format "No memoization at all." + \n "This is useful as a test control when measuring the effect of using memoization.") + [(none hash memo)]) + +(.def: .public documentation + (.List $.Module) + ($.module /._ + "" + [..open + ..closed + ..none + ($.default /.memoization) + ($.default /.Memo)] + [])) |