# HG changeset patch # User Robert McIntyre # Date 1333656308 18000 # Node ID 35960b03693fc0b53f2148a78d89c4d0d1dedab2 # Parent fe6fd2323264b88c42b16f330c4179255705667f improved delayed-difference with memoization diff -r fe6fd2323264 -r 35960b03693f clojure/com/aurellem/run/util.clj --- a/clojure/com/aurellem/run/util.clj Thu Apr 05 12:59:30 2012 -0500 +++ b/clojure/com/aurellem/run/util.clj Thu Apr 05 15:05:08 2012 -0500 @@ -62,17 +62,18 @@ (recur test high) (recur low test)))))))) + (defn delayed-difference [base alt delay difference-metric [moves root :as script]] (let [generator (memoize - (fn [n] + (fn gen [n] (run-moves root (repeat n base)))) len (binary-search - (fn [n] + (memoize (fn [n] (= (difference-metric (run-moves (generator n) @@ -80,7 +81,7 @@ (difference-metric (run-moves (generator n) - (repeat (inc delay) base)))))) + (repeat (inc delay) base))))))) new-moves (concat moves (repeat len base) [alt]) new-state (run-moves (generator len) [alt])] [new-moves new-state])) diff -r fe6fd2323264 -r 35960b03693f save-states/current-save.sav Binary file save-states/current-save.sav has changed