From f35b7f1f7df5b61ab54674f88c1eea1ffbe6b908 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 18 Aug 2019 11:38:52 -0700 Subject: doc: new buildn example. * txr.1: Adding breadth-first traversal example showing queue capability of the list-builder. --- txr.1 | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/txr.1 b/txr.1 index 031d7d9e..06cb8305 100644 --- a/txr.1 +++ b/txr.1 @@ -32462,6 +32462,21 @@ macro for deleting a place. ;; add function: (build [mapdo add (range 1 3)]) -> (1 2 3) + + ;; breadth-first traversal of nested list; + (defun bf-map (tree visit-fn) + (buildn + (add tree) + (whilet ((item (del))) + (if (atom item) + [visit-fn item] + (each ((el item)) + (add el)))))) + + (let (flat) + (bf-map '(1 (2 (3 4 (5))) ((6 7) 8)) (do push @1 flat)) + (nreverse flat)) + -> (1 2 8 3 4 6 7 5) .brev .SS* Permutations and Combinations -- cgit v1.2.3