From 85d05869771bba4282c815abe4e930d9890c0df3 Mon Sep 17 00:00:00 2001 From: Chris O'Donnell Date: Wed, 15 Jun 2016 15:03:16 -0400 Subject: [PATCH] Add link to inline caching post. --- List-of-Macros.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/List-of-Macros.md b/List-of-Macros.md index 1fb8947..651f20e 100644 --- a/List-of-Macros.md +++ b/List-of-Macros.md @@ -303,7 +303,7 @@ The arguments to `path` cannot include local symbols (defined in a `let`), dynam Any higher order navigators passed to `path` must include their arguments, even if their arguments will be evaluated at runtime. `path` cannot be passed late bound parameters. -**Note:** In general, you should prefer using `comp-paths` and `select` over `path` and `compiled-select`. `comp-paths` allows late bound parameters, and `path` does not, so `comp-paths` is more flexible. `select` automatically calls `path` on its path arguments, so you do not lose the speed of inline caching (unless you pass a local symbol, dynamic var, or special form). You can ensure you do not do this by calling `(must-cache-paths!)`. +**Note:** In general, you should prefer using `comp-paths` and `select` over `path` and `compiled-select`. `comp-paths` allows late bound parameters, and `path` does not, so `comp-paths` is more flexible. `select` automatically calls `path` on its path arguments, so you do not lose the speed of inline caching (unless you pass a local symbol, dynamic var, or special form). You can ensure you do not do this by calling `(must-cache-paths!)`. You can find a more detailed discussion of inline caching [here](https://github.com/nathanmarz/specter/wiki/Specter-0.11.0:-Performance-without-the-tradeoffs). ```clojure => (def p (path even?))