gpt4 book ai didi

clojure - 在 Clojure 和 ClojureScript 中创建和使用库

转载 作者:行者123 更新时间:2023-12-04 02:23:14 25 4
gpt4 key购买 nike

我刚刚编写了一些 ClojureScript 代码,却发现我无法访问我的 project.clj 中列出的库之一。的依赖。这是正确的,即您不能使用来自 CLJS 的 Clojure 库,除非它们专门设计为允许使用?

如果是这样,需要多少额外的工作才能采用不使用任何 Java 互操作的 Clojure 库,并且本身将是有效的 ClojureScript 代码,并使其可从 ClojureScript 中使用?环顾 GitHub,许多库似乎对 clj 和 cljs 代码具有单独的源目录。这样的库可以加到我的project.clj吗?并立即从任一平台使用?

最佳答案

有一些ClojureScript differences from Clojure .

来自“project.clj”的依赖可以被 ClojureScript 应用/可见/可用,例如,看看“jayq”。您可以将其包含在“project.clj”中:

(defproject xyz/xyz "0.1.0-SNAPSHOT"
:dependencies [[clj-time "0.4.3"]
[jayq "2.2.0"]
....

然后在 ClojureScript 文件中使用它:
(ns xyz.some.cljs
(:require ...
...
[clojure.browser.repl :as repl]
[jayq.core :as jq])

虽然“jayq”不是“后端”意义上的“Clojure”库,因为它只是包装了 JavaScript,但它是在 ClojureScript 端使用“project.clj”依赖项的一个示例。

此外,大部分核心和几个非核心库已经移植到 ClojureScript 端:
  • clojure.set
  • clojure.string
  • clojure.walk
  • clojure.zip
  • clojure.core.reducers
  • fold 目前是 reduce
  • 的别名
  • core.match
  • core.logic(工作中)

  • 其他 Clojure 库必须符合 ClojureScript 子集才能在 ClojureScript 中工作。

    值得克隆 ClojureScript repo并了解它支持的内容(如果您喜欢冒险,还可以添加自己的功能:)

    ClojureScript 依赖项通常基于“前端”(包括从后端移植的那些)。换句话说,最终目标是由 V8 编译并作为 JavaScript 运行,因此可以使用任何可以由 ClojureScript 编译器(上面的 repo)编译的东西。

    关于clojure - 在 Clojure 和 ClojureScript 中创建和使用库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15659507/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com