Quiero generar un fn totalmente en tiempo de ejecución (es decir, el nombre y el arg símbolos se deciden en tiempo de ejecución, no en código) Cuál es la mejor manera de lograr esto?Clojure: Cómo crear una función en tiempo de ejecución
Por ejemplo, ¿cómo puedo implementar la siguiente función?
(defn gen-fn [name arg-symbols body]
...
...
que se utilizaría como esto:
(gen-fn "my-func-name" (symbol "x") (symbol "y") (println "this is body. x=" x))
Tenga en cuenta que Nombre de función, los argumentos y el cuerpo no están codificados, pero se puede decidir en tiempo de ejecución
Sí. Esto es feo. La razón por la que necesito esto es que estoy experimentando con GeneticProgramming bajo Clojure. Clojure parece muy natural para esto. – GabiMe
Ah. De acuerdo. GP puede ser un uso legal de 'eval'. Pero aún mantente alerta para efectos extraños con 'eval'. – kotarak
¿por qué eval? ¿No podrías hacer esto con una macro? –