clojure-repl的使用套路
博客专区 > Rezeroer 的博客 > 博客详情
clojure-repl的使用套路
Rezeroer 发表于2年前
clojure-repl的使用套路
  • 发表于 2年前
  • 阅读 217
  • 收藏 1
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

clojure 提倡交互式开发,交互离不开REPL. 下面是介绍repl的使用过程

本文介绍所需以下 
1 任意编辑器
2lein

使用lein模板新建一个clojure项目

在命令行下输入

$ lein new repl-test

lein会使用默认模板创建clojure项目 目录如下

repl-test/
├── CHANGELOG.md
├── LICENSE
├── README.md
├── doc
│   └── intro.md
├── project.clj
├── resources
├── src
│   └── repl_test
│       └── core.clj
└── test
    └── repl_test
        └── core_test.clj

core.clj中内容

(ns repl-test.core)

(defn foo
  "I don't do a whole lot."
  [x]
  (println x "Hello, World!"))

进入项目跟目录 启动repl

$ cd repl-test
$ lein repl

看到 user=>说明启动成功了

我想调用下core.clj中的foo函数

输入 (foo "diqye") 会报错  foo不在当前环境中   因为当前环境不在repl-test.core命名空间中

切换命名空间并require

user=> (in-ns 'repl-test.core)

看到 repl-test.core=>  就切换成功了
require

repl-test.core=> (require 'repl-test.core)

执行 (foo "diqye") 会看到
diqye Hello, World!

修改core.clj文件

core.clj

(ns repl-test.core)

(defn foo
  "I don't do a whole lot."
  [x]
  (println x "hello, clojure!"))

想要运行修改后的 foo需要load-file

repl-test.core=> (load-file "src/repl_test/core.clj")
#'repl-test.core/foo
repl-test.core=> (foo "diqye")
diqye hello, clojure!
nil
repl-test.core=> 

不重启repl 增加第三方依赖 data.json

这个没有找到合适的方法去做,目前可以通过一个 库去做 https://github.com/clojure/tools.namespace

user=> (require '[clojure.tools.namespace.repl :refer [refresh]])

user=>(refresh) 会自动检测项目文件变化并加载

但是并不会自动加载project.clj新增的依赖项,只能重启repl

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
Rezeroer
粉丝 54
博文 72
码字总数 22354
×
Rezeroer
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: