首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接Clojure和Clojurescript

连接Clojure和Clojurescript
EN

Stack Overflow用户
提问于 2014-05-07 22:39:21
回答 2查看 313关注 0票数 3

我想让我现有的Clojure库可以从Clojurescript中使用,同时创建可以在Clojure和clojurescript中运行的新应用程序。

我知道Clojure和Clojurescript有其不同之处,而且还有像cljx这样的元编程解决方案。但是,我已经将Clojure代码限制为Clojurescript的一个兼容子集,并且我只想从clojurescript调用clojure (反之亦然)。我已经在core.match等库中看到了这一点,但我无法复制那里所做的事情。

我最近得到了No such namespace,我不确定是因为这是不可能的,还是因为我的命名空间或目录结构错误,或者其他一些原因。

为了具体起见,我有一个目录结构,格式如下

代码语言:javascript
复制
src/
  clj/
    clopjys/
      vector.clj
  cljs/
    cljdemo.cljs

我正在尝试从cljdemo.cljs内部使用vector.clj,即:

代码语言:javascript
复制
(:require
  [clophys.vector :refer [coords std-uniform-vector]])

我的project.clj包含以下条目

代码语言:javascript
复制
  ...
  :source-paths ["src/clj"]
  :cljsbuild {
      :builds [{
          ; The path to the top-level ClojureScript source directory:
          :source-paths ["src/cljs"]
   ...
EN

回答 2

Stack Overflow用户

发布于 2014-05-08 03:24:02

不能在运行时将clj代码包含在cljs中。clj文件将包含在宏中(这些宏是在clj中定义的,可能就是您在core.match中看到的)。

最好的解决方案是cljx,如果你的代码实际上与clj和cljs兼容,那么你将拥有一个看起来与普通clj文件完全一样的cljx文件。它很简单,很酷,试试吧!

票数 2
EN

Stack Overflow用户

发布于 2016-02-20 00:45:08

自从这个问题被提出后,Clojure reader conditionals就出现在了核心语言中(而.cljx是一个库)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23520882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档