aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/documentation/lux/control/function/memo.lux
blob: 9fd53f36e34af328d7400e265601f9af792fa092 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(.require
 [library
  [lux (.except open)
   ["$" documentation]
   [data
    [text (.only \n)
     ["%" \\format (.only format)]]]]]
 [\\library
  ["[0]" /]])

(.def .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [($.default /.memoization)
             ($.default (/.Memo input output))

             ($.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)])]
            []))