John Chandler avatar John Chandler committed ddfc109

Added do-search macro, though this raises an exception about tail recursion, to elicit feedback.

Comments (0)

Files changed (1)

 (defmacro search-exhausted []
   (list '> 'lower 'upper))
 
+(defmacro do-search [ & body ]
+  ; NOT WORKING - "Can only recur from tail position"
+  `(loop [ ~'lower 0
+		   ~'upper (get-upper) ] ~@body
+     {:lower ~'lower :upper ~'upper }))
+
 (defn
   #^{:test (fn []
 			 (assert (= -1 (chop 3 []) ))
 			 (assert (= -1 (chop 8 [1 3 5 7]) )) ) }
   chop
   [item list]
-  (loop [ lower 0
-          upper (get-upper) ]
+  (do-search
 	(if (search-exhausted)
 	  -1
 	  (if (< (get-mid) item)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.