I have been trying to define a macro for clojurescript/clojure using a cljc file
(ns async (:require #?(:clj [clojure.core.async :as a :refer [go-loop]]) #?@(:cljs [[cljs.core.async :as a] [cljs.core.async.macros :refer [go-loop]]]))) (defmacro dochan "Wrap the expressions in a go-loop over the single binding to a channel till the chan closes" [chan & body] (let [[name channel-expr] binding] `(let [channel# ~channel-expr] (a/go-loop [~name (a/<! channel#)] (if (some? ~name) (do ~@body (recur (a/<! channel#))) (a/close! channel#)))))) ;; in CLJS (ns cljs (:require [cljs.core.async :as a])) (dochan [e (a/chan 10)] (println "Auto-insert" e)) ;; keeps throwing exception saying it cannot find clojure.core.async Further macroexpansion in cljs-repl confirmed what I was saying with the resulting code using clojure.core.async. So I came to the conclusion that since clojurescript relies on clojure for macros, it would use clojure to load the macros , hence making the reader conditionals work like the macro's to be used in a clojure file. Another weird thing happened though. It was auto-inserting clojure.core.async whenever I remove the :clj require. I am guessing it's cider because whenever I started a different repl it would behave normally, using a alone rather than cojure.core.asyn -- 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.