Comment puis-je prendre un grand projet Java existant et commencer à ajouter des modules Clojure? Par exemple, dans le code ci-dessous, je voudrais rendre les fonctions suivantes disponibles en Java: état ?, zip ?, état-liste, code postal liste. Les deux prédicats retourneront un booléen, mais les "getters" retourneront des tableaux.Intégrer Clojure dans un projet Java existant?
(def *states* (list "NJ" "NY" "CA")) (def *zipcodes* (list 12345 54343 98765)) (defn member [x sq] (if (seq sq) (if (= x (first sq)) sq (recur x (rest sq))))) (defn state? [aState] (not (= (member aState *states*) nil))) (defn zip? [aZip] (not (= (member aZip *zipcodes*) nil))) (defn state-list [] *states*) (defn zipcode-list [] *zipcodes*) ;; --------------- (state? "AA") (state? "CA") (zip? 11111) (zip? 12345)
Je regardais le README de Leiningen, mais je ne vois rien qui explique cela. Connaissez-vous des blogs, etc. qui peuvent expliquer cela en détail? Comment mes listes seront-elles renvoyées à Java, par exemple? –
vous convertissez le vecteur clojure en une liste Java avec
to-list
et le renvoyer à partir de la fonction. plus ici: http://clojure.org/java_interop#toc27 –Je pense que les filets manquent d'explications à ce sujet. –