gpt4 book ai didi

clojure - Clojure REPL 到底是什么?它背后的技术是什么?

转载 作者:行者123 更新时间:2023-12-04 22:00:15 33 4
gpt4 key购买 nike

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

最佳答案

背后的技术:

  1. 微型 Java 入口点:

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

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

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

这些链接指向文件的 1.7.0 版本,这是撰写本文时的最新稳定版本。

总结一下它们的作用,clojure.main 是一个带有 main 方法的小型 Java 类,用作 REPL 的入口点。 (所以,它只是一个标准的 Java 程序。)该 main 方法接受任何参数并将它们传递给 clojure.main Clojure 命名空间中的一个函数(使用一些简单的调用 clojure.lang.RT 类中的方法,该类实现了 Clojure 运行时的一些核心细节,以获取相关函数——严格来说是保存函数的 Var)。然后上述函数调用实际读取用户输入的代码,对其进行评估,打印出结果并再次循环读取更多输入,直到被 C-d 或其他方法终止,并具有各种复杂性,例如设置增加一些 Var 绑定(bind)等(允许用户控制 REPL 操作的某些方面和某些编译器设置)。

关于clojure - Clojure REPL 到底是什么?它背后的技术是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34659919/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com