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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux运维面试题2

    Linux运维面试题21.apache怎么实现负载均衡答案:多台机器跑apache,然后其中一台跑nginx,让nginx去代理多台apache实现负载均衡2.一台Linux服务器负载高,连接慢,怎么查看答案:先用w看负载多少,用top看哪个进程占用cpu高,同时用top按M看哪个进程占用内存多,用iotop看哪个进程读写频发,用sar命令或者nload命令查看网卡流量,是否跑满带宽3.现有A文件,编写shell…

    2022年6月5日
    64
  • poe交换机供电原理图_poe供电原理详解

    poe交换机供电原理图_poe供电原理详解POE指的是在现有的以太网Cat.5布线基础架构不作任何改动的情况下,在为一些基于IP的终端(如IP电话机、无线局域网接入点AP、网络摄像机等)传输数据信号的同时,还能为此类设备提供直流电的技术.就是支持以太网供电的交换机。那么,POE交换机的供电原理及工作过程是什么呢?接下来我们就跟随飞畅科技的小编一起来详细了解下吧!POE交换机供电原理标准的五类网线有四对双绞线,但是在10MBASE-T和100MBASE-T中只用到其中的两对。IEEE802.3af允许两种用法,应用空闲脚供电时,4、5脚连

    2022年9月27日
    2
  • yourphp目录结构

    yourphp目录结构

    2021年10月9日
    46
  • 单片机STM32_ds18b20工作原理简述

    单片机STM32_ds18b20工作原理简述硬件原理图LCD12864.c你主要看每个功能函数是如何实现的/*****************************************按照自己的硬件电路图来设置*————————–*|PB.09:(LCD_BLK)|*|PC.06:(LCD_RST)…

    2025年11月10日
    6
  • Oracle Hints具体解释

    Oracle Hints具体解释

    2021年11月23日
    41
  • 聊聊内存屏障_内存栅栏

    聊聊内存屏障_内存栅栏本文转载自聊聊内存屏障#导语在之前文章聊聊JMM,说到了内存屏障,内存屏障在Java语言实现一致性内存模型上起到了重要的作用,本文我们一起聊一聊内存屏障内存屏障是什么在cpu执行指令的过程中,

    2022年8月3日
    26

发表回复

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

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