Clojure Java Interoperability












-1















I am new to Clojure. I am trying to understand clojure java interop. I have a java hashmap which I need to use in my Clojure program. I am trying to iterate on the hash map but it is giving me an error.



Main.java:

package com.example;
import java.util.HashMap;
import java.util.Map;
import clojure.java.api.Clojure;
import clojure.lang.IFn;
class Main {
public static void main( String args ) {
IFn require = Clojure.var("clojure.core", "require");
require.invoke(Clojure.read("com.example.core"));
IFn Print = Clojure.var("com.example.core", "Print");
Map<String, String> map = new HashMap<>();
map.put("message", "hello world");
Print.invoke(map);
}
}

core.clj:

(ns com.example.core
(:gen-class))
(defn Print [m]
(doseq [[k v] map] (prn k v)))
(defn -Print [m]
(Print m))


When I am trying to run the program as a java application, it is saying-
Exception in thread "main" java.lang.IllegalArgumentException: Don't know
how to create ISeq from: clojure.core$map.



When I am trying to run it as a clojure application it is saying-
Exception in thread "main" clojure.lang.ArityException: Wrong number of
args (0) passed to: core/-main.



I have tried to search for resources on the internet and everywhere it is being said that we need to use java hashmap in the same way as we use clojure map. But nothing is working for me and I don't know what am I doing wrong.



Any help would be appreciated.










share|improve this question























  • I finally resolved the issue. There was a mistake in my Clojure code.

    – ditri
    Dec 29 '18 at 6:36
















-1















I am new to Clojure. I am trying to understand clojure java interop. I have a java hashmap which I need to use in my Clojure program. I am trying to iterate on the hash map but it is giving me an error.



Main.java:

package com.example;
import java.util.HashMap;
import java.util.Map;
import clojure.java.api.Clojure;
import clojure.lang.IFn;
class Main {
public static void main( String args ) {
IFn require = Clojure.var("clojure.core", "require");
require.invoke(Clojure.read("com.example.core"));
IFn Print = Clojure.var("com.example.core", "Print");
Map<String, String> map = new HashMap<>();
map.put("message", "hello world");
Print.invoke(map);
}
}

core.clj:

(ns com.example.core
(:gen-class))
(defn Print [m]
(doseq [[k v] map] (prn k v)))
(defn -Print [m]
(Print m))


When I am trying to run the program as a java application, it is saying-
Exception in thread "main" java.lang.IllegalArgumentException: Don't know
how to create ISeq from: clojure.core$map.



When I am trying to run it as a clojure application it is saying-
Exception in thread "main" clojure.lang.ArityException: Wrong number of
args (0) passed to: core/-main.



I have tried to search for resources on the internet and everywhere it is being said that we need to use java hashmap in the same way as we use clojure map. But nothing is working for me and I don't know what am I doing wrong.



Any help would be appreciated.










share|improve this question























  • I finally resolved the issue. There was a mistake in my Clojure code.

    – ditri
    Dec 29 '18 at 6:36














-1












-1








-1








I am new to Clojure. I am trying to understand clojure java interop. I have a java hashmap which I need to use in my Clojure program. I am trying to iterate on the hash map but it is giving me an error.



Main.java:

package com.example;
import java.util.HashMap;
import java.util.Map;
import clojure.java.api.Clojure;
import clojure.lang.IFn;
class Main {
public static void main( String args ) {
IFn require = Clojure.var("clojure.core", "require");
require.invoke(Clojure.read("com.example.core"));
IFn Print = Clojure.var("com.example.core", "Print");
Map<String, String> map = new HashMap<>();
map.put("message", "hello world");
Print.invoke(map);
}
}

core.clj:

(ns com.example.core
(:gen-class))
(defn Print [m]
(doseq [[k v] map] (prn k v)))
(defn -Print [m]
(Print m))


When I am trying to run the program as a java application, it is saying-
Exception in thread "main" java.lang.IllegalArgumentException: Don't know
how to create ISeq from: clojure.core$map.



When I am trying to run it as a clojure application it is saying-
Exception in thread "main" clojure.lang.ArityException: Wrong number of
args (0) passed to: core/-main.



I have tried to search for resources on the internet and everywhere it is being said that we need to use java hashmap in the same way as we use clojure map. But nothing is working for me and I don't know what am I doing wrong.



Any help would be appreciated.










share|improve this question














I am new to Clojure. I am trying to understand clojure java interop. I have a java hashmap which I need to use in my Clojure program. I am trying to iterate on the hash map but it is giving me an error.



Main.java:

package com.example;
import java.util.HashMap;
import java.util.Map;
import clojure.java.api.Clojure;
import clojure.lang.IFn;
class Main {
public static void main( String args ) {
IFn require = Clojure.var("clojure.core", "require");
require.invoke(Clojure.read("com.example.core"));
IFn Print = Clojure.var("com.example.core", "Print");
Map<String, String> map = new HashMap<>();
map.put("message", "hello world");
Print.invoke(map);
}
}

core.clj:

(ns com.example.core
(:gen-class))
(defn Print [m]
(doseq [[k v] map] (prn k v)))
(defn -Print [m]
(Print m))


When I am trying to run the program as a java application, it is saying-
Exception in thread "main" java.lang.IllegalArgumentException: Don't know
how to create ISeq from: clojure.core$map.



When I am trying to run it as a clojure application it is saying-
Exception in thread "main" clojure.lang.ArityException: Wrong number of
args (0) passed to: core/-main.



I have tried to search for resources on the internet and everywhere it is being said that we need to use java hashmap in the same way as we use clojure map. But nothing is working for me and I don't know what am I doing wrong.



Any help would be appreciated.







java clojure clojure-java-interop






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Dec 29 '18 at 6:15









ditriditri

63




63













  • I finally resolved the issue. There was a mistake in my Clojure code.

    – ditri
    Dec 29 '18 at 6:36



















  • I finally resolved the issue. There was a mistake in my Clojure code.

    – ditri
    Dec 29 '18 at 6:36

















I finally resolved the issue. There was a mistake in my Clojure code.

– ditri
Dec 29 '18 at 6:36





I finally resolved the issue. There was a mistake in my Clojure code.

– ditri
Dec 29 '18 at 6:36












1 Answer
1






active

oldest

votes


















0














(defn Print [m]
(doseq [[k v] map] (prn k v)))



I think map is support to be m I guess






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53967189%2fclojure-java-interoperability%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    (defn Print [m]
    (doseq [[k v] map] (prn k v)))



    I think map is support to be m I guess






    share|improve this answer




























      0














      (defn Print [m]
      (doseq [[k v] map] (prn k v)))



      I think map is support to be m I guess






      share|improve this answer


























        0












        0








        0







        (defn Print [m]
        (doseq [[k v] map] (prn k v)))



        I think map is support to be m I guess






        share|improve this answer













        (defn Print [m]
        (doseq [[k v] map] (prn k v)))



        I think map is support to be m I guess







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Dec 31 '18 at 10:02









        Narendra PinnakaNarendra Pinnaka

        366




        366






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53967189%2fclojure-java-interoperability%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Monofisismo

            Angular Downloading a file using contenturl with Basic Authentication

            Olmecas