I have two different functions for the same functionality. I would like to share the pre-conditions between them.
The general function is: (defn test-lucky-numbers-general "Performance test of lucky numbers general" [fn desc nr] {:pre [(>= nr 1) (<= nr 7)]} (println desc) (dotimes [i 25] (let [lucky (time (fn 10))])) (println) (dotimes [i nr] (time (let [upto (int (Math/pow 10 (inc i)))] (printf "With upto %d there are %d lucky numbers\n" upto (count (fn upto))))) (println))) The functions themselves are: (defn test-lucky-numbers "Performance test of lucky numbers" ([] (test-lucky-numbers 6)) ([nr] (test-lucky-numbers-general lucky-numbers "Testing performance lucky-numbers" nr))) and: (defn test-lucky-numbers-3 "Performance test of lucky numbers (3)" ([] (test-lucky-numbers-3 6)) ([nr] (test-lucky-numbers-general lucky-numbers-3 "Testing performance lucky-numbers-3" nr))) And to call all test functions I have: (defn test-lucky-numbers-all "Test all lucky number performance" ([] (test-lucky-numbers-all 6)) ([nr] (test-lucky-numbers nr) (test-lucky-numbers-3 nr))) When I call a function with the wrong parameter, I get an error from test-lucky-numbers-general, but I need it from the calling function. I could copy the pre-condition to all functions, but that is not really DRY. Is there a way I can share the pre-conditions with all (at this moment) four functions? The first dotimes in test-lucky-numbers-general is to warm-up the JVM. Is there a way to know if this is already done for the function that is given? Then it could be done only when necessary. -- Cecil Westerhof -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.