clojure-repl的使用套路

clojure-repl的使用套路

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

转载于:https://my.oschina.net/diqye/blog/728839

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108918.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Matlab常用绘图颜色搭配[通俗易懂]

    Matlab常用绘图颜色搭配[通俗易懂]推荐几款常用的离散色系搭配,并且附带matlab箱线图作为实例参考!

    2022年5月24日
    121
  • windows的安装_kafka windows安装

    windows的安装_kafka windows安装一、安装JAVAJDK1、下载安装包http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html注意:根据32/64位操作系统下载对应的安装包2、添加系统变量:JAVA_HOME=C:\ProgramFiles(x86)\Java\jdk1.8.0_144二、安装Zo…

    2022年10月9日
    0
  • vs2005安装步骤_vs安装路径

    vs2005安装步骤_vs安装路径英文补丁431Mhttp://download.microsoft.com/download/6/3/c/63c69e5d-74c9-48ea-b905-30ac3831f288/VS80sp1-KB926601-X86-ENU.exe中文补丁http://download.microsoft.com/download/8/0/7/8071514d-9370-45c3-8af1-4f

    2022年10月6日
    0
  • 详解Document.Cookie

    详解Document.Cookie转自:https://www.jb51.net/article/77009.htm具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时

    2022年7月4日
    30
  • Qt中使用匿名函数lambda表达式

    Qt中使用匿名函数lambda表达式

    2021年11月20日
    31
  • Ubuntu保存退出vim编辑器「建议收藏」

    Ubuntu保存退出vim编辑器「建议收藏」命令模式,从键盘上输入的任何字符都被作为编辑命令来解释,vi下很多操作如配置编辑器、文本查找和替换、选择文本等都是在命令模式下进行的。输入模式,从键盘上输入的所有字符都被插入到正在编辑的缓冲区中,被当作正文。1.编辑进入vi/vim后按字母“i”或“I”即可进入编辑状态(此时左下角会出现“插入”),另外还可以用a…

    2022年6月11日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号