Commits

Mike Graham committed b95944d

Updated documentation.

Comments (0)

Files changed (1)

 Usage Guide
 ===========
 
-This will be a long description of how Remember works.
+Introduction
+------------
+
+Remember provides decorators to cache the result of function calls. This way instead of repeatedly computing expensive results, the result of a previous computation can be used instead. Consider this simple example::
+
+    >>> import time
+    >>> def f(x):
+    ...     return x ** x
+    ...
+    >>>
+    >>> start = time.time(); result = f(500000); time.time() - start
+    9.4690001010894775
+    >>> start = time.time(); new_result = f(500000); time.time() - start
+    9.4839999675750732
+    >>> new_result == result
+    True
+
+The second time takes about the same amount as the first to perform this computation, several seconds. We didn't have to spend all that time, though, since we already know the answer has to be the same as the old result. Using remember, we can cache the old values and save time::
+
+    >>> from remember.memoize import memoize
+    >>> @memoize(100)
+    ... def g(x):
+    ...     return x ** x
+    ...
+    >>> start = time.time(); result = g(500000); time.time() - start
+    9.4690001010894775
+    >>> start = time.time(); new_result = g(500000); time.time() - start
+    0.0
+    >>> new_result == result
+    True
+
+This time, I decorated my function with :func:`memoize` and the second time calculating the same result took very little time (so little it rounds to 0!).