当前位置:  开发笔记 > 开发工具 > 正文

什么是Clojure REPL?它背后的技术是什么?

如何解决《什么是ClojureREPL?它背后的技术是什么?》经验,为你挑选了1个好方法。

我知道Clojure Repl 了什么以及它是如何有用的,但是我没有关于它的内部结构如何工作的任何信息.它是在JVM中运行的程序吗?repl的内部如何工作?



1> Michał Marcz..:

背后的技术:

    微小的Java入口点:

    https://github.com/clojure/clojure/blob/clojure-1.7.0/src/jvm/clojure/main.java

    用Clojure编写的REPL的实际实现:

    https://github.com/clojure/clojure/blob/clojure-1.7.0/src/clj/clojure/main.clj

链接是1.7.0版本的文件,这是本文撰写时最新的稳定版本.

总结一下这些是什么,clojure.main是一个微小的Java类,它有一个main方法作为REPL的入口点.(所以,它只是一个标准的Java程序.)该main方法接受任何参数并将它们clojure.main移交给Clojure命名空间中的函数(使用对clojure.lang.RT类中的方法的一些简单调用来实现Clojure运行时的一些核心细节以获得有问题的功能 - 严格来说,保持功能的Var).然后,所述函数调用实际读取用户输入的代码,对其进行评估,打印结果并再次循环读取更多输入,直到通过C-d或其他方法终止,以及设置一些Var绑定等各种复杂情况(以允许用户控制REPL操作和某些编译器设置的某些方面).

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有