Hi,

I think it depends on what your options are actually doing, what has
to be so configurable. Maybe you can extract this configurability with
a more functional approach? For example instead of specifying a
algorithm to use in the options map, make it a parameter of the
backend function and let the frontend plugin a suitable fn depending
on the user choice. Or store away such information in your data
structure and use multimethods to dispatch on this information. In how
far such alternatives are viable depends really on the nature of your
options.

Another solution is to "fix" the bindings for the lazy-seqs:

(defn uses-foo-and-bar-options
  [stuff]
  (let [{:keys [foo bar]} *options*]
    (map #(do-stuff-with foo bar %) stuff)))

bound-fn will also remedy this problem:

(defn uses-the-options
  [stuff]
  (map (bound-fn [x] (do-stuff-with (:foo *options*) x)) stuff))

However this will most likely not be the fastest approach.

In a totally representative query ;), I thought about my code. And I
almost never find the need for binding. If I use it, it is really in a
local context. Eg. rebinding *out* for a couple of local prints.

Maybe you can post some example, what you want to do? Then it is
easier to come up with some concrete ideas.

Sincerely
Meikel

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to