`
no7beckham
  • 浏览: 97158 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

require,use&import in clojure

 
阅读更多

在clojure 1.4中,引用其它clojure包函数的方法

1. 全名引用

user=> (in-ns 'myapp)
#<Namespace myapp>
myapp=> (clojure.string/capitalize "abc")
"Abc"

2. 用require建alias

myapp=> (clojure.core/require '[clojure.core :as core])
nil
myapp=> (core/require ['clojure.string :as 'str])
nil
myapp=> (str/capitalize "a")
"A"

3.使用use

user=> (in-ns 'myapp)
#<Namespace myapp>
myapp=> (range 10)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: range in this context, compiling:(NO_SOURCE_PATH:2)
myapp=> (clojure.core/use 'clojure.core)
nil
myapp=> (range 10)
(0 1 2 3 4 5 6 7 8 9)

myapp=> (use 'clojure.string)
WARNING: replace already refers to: #'clojure.core/replace in namespace: myapp,being replaced by: #'clojure.string/replace
WARNING: reverse already refers to: #'clojure.core/reverse in namespace: myapp,being replaced by: #'clojure.string/reverse
nil
myapp=> (join \- [0 1 2])
"0-1-2"

use中可以使用两个参数:only :exclude

user=> (in-ns 'myapp)
#<Namespace myapp>
myapp=> (clojure.core/use '[clojure.core :only [use]])
nil
myapp=> (range 10)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: range in
 this context, compiling:(NO_SOURCE_PATH:3)
myapp=> (first [0 1 2])
CompilerException java.lang.RuntimeException: Unable to resolve symbol: first in
 this context, compiling:(NO_SOURCE_PATH:4)
myapp=> (clojure.core/use '[clojure.core :exclude [range]])
nil
myapp=> (first [0 1 2])
0
myapp=> (range 10)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: range in
 this context, compiling:(NO_SOURCE_PATH:7)

分享到:
评论

相关推荐

    详解Node中导入模块require和import的区别

    Node.js 中导入模块 require 和 import 的区别 Node.js 中的模块化编程是基于 CommonJS 规范的,而在 ES6 中,则是基于 ES6 模块标准的。在 Node.js 中,我们使用 require 函数来导入模块,而在 ES6 中,我们使用 ...

    Twlig#issuesBlog#87_require和import的区别1

    require和import的区别require和import的区别导入require 导出 exports/module.exports 是 CommonJS

    Clojure调用Java类的一个实例

    (require '[clojure.java.jdk :as jdk]) (def hello-world (jdk/class-for-name "com.example.HelloWorld")) (let [instance (hello-world)] (.sayHello instance)) ``` 在上述代码中,`clojure.java.jdk`是一个...

    clojure1.4包

    要开始使用,你需要解压文件,然后在终端或命令行中启动 Clojure 的 REPL,通过 `require` 命令引入所需库,开始编写和测试代码。 总的来说,Clojure 1.4 和 http-kit 结合,为开发者提供了一套强大的工具,用于...

    一文让你彻底搞清楚javascript中的require、import与export

    总结来说,`require`、`import`和`export`是JavaScript模块化编程的关键组成部分,它们各自代表了不同时期和不同场景下的解决方案。理解它们的工作原理和用法对于编写可维护、可复用的代码至关重要。随着技术的发展...

    programming clojure

    Gilardi**:clojure.core/[require, use] 和 clojure.main的主要作者。 #### 四、学习资源推荐 对于希望深入了解Clojure的开发者来说,《Programming Clojure》是一本不可多得的好书。本书由经验丰富的开发者撰写...

    linux-用于Kubernetes操作的Clojure工具

    (require '[keenest.rube.core :as kub]) (kub/create-or-update! deployment) ``` 这将创建或更新名为"my-app"的Deployment。同样,你可以使用`kub/get`、`kub/delete`等函数来查询和删除资源。 总结起来,...

    Clojure数据库访问封装Clojureoj.zip

    (require [oj.core :as oj])  [oj.modifiers :as db]) (defn find-by-username [username]  (-&gt; (db/query :users)  (db/select [:id :username :email :created_at])  (db/where {:...

    JavaScript中使用import 和require打包后实现原理分析

    在打包工具的作用下,无论是import还是require导入的模块,最终都会被转换成webpack定义的__webpack_require__函数调用的形式,以保证代码在浏览器端能够正常运行。 具体来说,在webpack的打包结果中,我们可以看到...

    Clojure(Script)库ClojureSchema.zip

     (:require [schema.core :as s  :include-macros true ;; cljs only  ])) (def Data  "A schema for a nested data type"  {:a {:b s/Str  :c s/Int}  :d [{:e s/Keyword  :f [s/Num]}...

    Javascript(es2016) import和require用法和区别详解

    在ES2016中,主要使用import和require两种方式来实现模块的导入和导出,这两者之间有一些重要的用法和区别。 首先,我们需要了解export和import的基本用法。在ES2016中,export可以将一个变量、函数、类或对象导出...

    微信小程序require 引用 BASE64.JS 失败问题的分析解决

    # 问题 ... 'use strict';  // existing version for noConflict()  var _Base64 = global.Base64; // 这句出错了...变量global的值是传入的this指针值,this指针为空了.  var version = "2.1.9

    PHP基础007: PHP require和require_once的实验和总结

    // 使用require引入inc文件 require 'inc.php'; echo "require引入inc后 "; // 再次尝试引入inc文件 require 'inc.php'; echo "再次require引入inc后 "; // 使用require_once引入inc文件 require_once 'inc....

    Clojure学习——使用clojure jdbc操作mysql

    (require '[clojure.java.jdbc :as jdbc]) (jdbc/with-connection db-conf ;; 在这里执行数据库操作 ) ``` 在这个`with-connection`块中,你可以执行SQL查询。例如,如果你想从名为`users`的表中选择所有记录,...

    golang开启mod后import报红解决

    对于IntelliJ IDEA,需要在File &gt; Settings &gt; Languages & Frameworks &gt; Go中确保“Use Go Modules (vgo)”已被选中。 5. **清理并重建**: 有时,执行`go mod tidy`命令可以帮助清理并重新下载所有必要的依赖,以...

    import-from:像`require()`一样从一个给定的路径导入一个模块

    进口于像从给定路径导入模块安装 $ npm install import-from用法 const importFrom = require ( 'import-from' ) ;// There is a file at `./foo/bar.js`importFrom ( 'foo' , './bar' ) ;原料药importFrom...

    MiniZinc的Clojure接口库clojure2minizinc.zip

     (:require [clojure2minizinc.core :as mz]))  (mz/minizinc   (mz/clj2mnz  (let [a (mz/variable (mz/-- -1 1))   b (mz/variable (mz/-- -1 1))]  (mz/constraint (mz/!= a b))  (mz/...

    babel-plugin-dynamic-import-webpack:Babel插件可将import()转换为Webpack的require.ensure

    Babel插件可将import() require.ensure为Webpack的require.ensure。 请注意,编写此代码后,Webpack 2已 。 注意:需要Babylon v6.12.0才能正确解析动态导入。 安装 $ npm install babel-plugin-dynamic-import-...

Global site tag (gtag.js) - Google Analytics