Add DFLET, PROGF to API documentation.
authorOlof-Joachim Frahm <olof@macrolet.net>
Mon, 10 Jun 2013 22:03:57 +0000 (00:03 +0200)
committerOlof-Joachim Frahm <olof@macrolet.net>
Mon, 10 Jun 2013 22:03:57 +0000 (00:03 +0200)
README.md

index 2a0e10b..667b5d2 100644 (file)
--- a/README.md
+++ b/README.md
@@ -18,4 +18,28 @@ Some parts may be used independently of the testing facilities,
 e.g. dynamic `FLET` and method bindings with `PROGM` may be of general
 interest.
 
+
+# UTILITIES
+
+`DFLET` dynamically rebinds functions similar to `FLET`:
+
+    > (defun foo () 42)
+    > (defun bar () (foo))
+    > (bar)
+    > => 42
+    > (dflet ((foo () 23))
+    >   (bar))
+    > => 23
+    > (OR) => 42, if FOO was inlined
+
+The caveat is that this might not work on certain optimization settings.
+
+The underlying function `PROGF` may be used as well similarly to standard
+`PROG`:
+
+    > (progf '(foo) (list (lambda () 23))
+    >   (bar))
+    > => 23
+    > (OR) => 42, if FOO was inlined
+
 [1]: http://common-lisp.net/project/closer/closer-mop.html