Clojure Java Interoperability
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
add a comment |
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
I finally resolved the issue. There was a mistake in my Clojure code.
– ditri
Dec 29 '18 at 6:36
add a comment |
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
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
java clojure clojure-java-interop
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
add a comment |
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
add a comment |
1 Answer
1
active
oldest
votes
(defn Print [m]
(doseq [[k v] map] (prn k v)))
I think map is support to be m I guess
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
(defn Print [m]
(doseq [[k v] map] (prn k v)))
I think map is support to be m I guess
add a comment |
(defn Print [m]
(doseq [[k v] map] (prn k v)))
I think map is support to be m I guess
add a comment |
(defn Print [m]
(doseq [[k v] map] (prn k v)))
I think map is support to be m I guess
(defn Print [m]
(doseq [[k v] map] (prn k v)))
I think map is support to be m I guess
answered Dec 31 '18 at 10:02
Narendra PinnakaNarendra Pinnaka
366
366
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
I finally resolved the issue. There was a mistake in my Clojure code.
– ditri
Dec 29 '18 at 6:36