2024 Clojure 状态调查!中分享你的想法。

欢迎!请查看关于页面以了解这个程序的一些更多信息。

0
REPL
关闭

所以,我一直在复习这个语言,因为我还在尝试将我的 Clojure 知识永久保存在长期记忆中。我在 Windows 11 的主机上用 VSCode 设置了一个到使用 VSCode 的 Arch Linux 的 Remote WSL 2.0 连接,因为我对所有开发都使用 Linux。

问题是简单的,但我无法确定。

尝试从 clojure.core 中调用 (read-line) 在 Calva 的输出中产生了一个错误,Calva 使用 Joyride 启动 REPL。

核心不是默认加载的吗?怎么了

;checking if ns is the problem
(ns encoder)

;repl output check
(defn queue [] 0)
(println str (queue))

(def files-list)
;test
(do (print "Name yourself now: ")
    (flush)
    (read-line)) => Could not resolve symbol: read-line

;debug test
(println "Enter (literal) filename to encode> ")
(def input (read-line)) => Could not resolve symbol: read-line
(println (str "File to encode: " input))
;cant call read-line from core? wtf

;finish this
(defn add-queue-confirm [filenames]
  (println "Files to process: " filenames))
关闭备注: 问题已解决。

1 答案

+1

选中
 
最佳答案

如果你使用 Joyride,这不是 JVM Clojure。

Joyride 是用于在 VSCode 中进行脚本的一个 ClojureScript 环境,它使用 SCI 来解释 ClojureScript。与 ClojureScript 一样,它核心库中没有 read-line 函数。


编辑了
哇,我以为它同时支持clj和cljs。那我是否应该使用Leiningen?现在的推荐方案是什么?(我想我稍后还得研究和ClojureScript)
Joyride是一个学习Clojure的优秀环境。它有一些限制,比如没有`read-line`,正如您所注意到的,但总体来说,它是一个非常完整的Clojure实现。

如果您想学习使用JVM Clojure,我建议您自己创建一个最小的`deps.edn`项目,并从这里开始工作。它可以尽可能小,如下所示

    .
    ├── deps.edn
    └── src
        └── hello.clj

而`deps.edn`文件可以只包含一个空映射 `{}`。

然后使用Calva的Jack-in启动此项目的REPL(**Calva: 开始一个项目的REPL并连接**)。
明白了,非常感谢你们两位
...