Hi there,

I wanted to use dynamic loading of namespaces to achieve sort of a plugin 
structure but got kind of struck.

I have a leiningen project, with the following files:

-- src/aigympoc/config.clj

(ns aigympoc.config)

(def scenario "aigympoc.scenario1")


- src/aigympoc/scenario1.clj

(ns aigympoc.scenario1)

(defn improve [] ...)
(defn success? [] ...)


- src/aigympoc/scenario2.clj

(ns aigympoc.scenario2)

(defn improve [] ...)
(defn success? [] ...)


- src/aigympoc/gameloop.clj


(ns aigympoc.gameloop
  (:require
    aigympoc.config
    ...
    aigympoc.scenario1    ; <-- how to get 
    aigympoc.scenario2))) ; <-- rid of these

...


(defn step

  []

   ...
      (do
        (if (= (scenario-success?) \t)
          (prn "success")
          (do (scenario-improve)


(defn scenario-improve
  []
  (eval (read-string (str "(aigympoc." aigympoc.config/scenario "/improve)"))))


(defn scenario-success?
  []
  (eval (read-string (str "(aigympoc." aigympoc.config/scenario "/success?)"))))


I would really like to get rid of the requires to aigympoc.scenario1 and 
aigympoc.scenario1,

so that scenarios can get loaded on the fly, by just putting a new file to a 
folder and setting the name in the config (or giving it on runtime). 

I spent quite some time on it, but cannot figure it out.


I'm really new to clojure so I think I may be trying to use it 
non-idiomatically and there are better ways for doing it.
In any case I would be happy if someone more experienced could point me in 
the right direction.




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

Reply via email to