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

欢迎!有关如何使用本站的更多信息,请参阅关于页面。

0 投票
REPL
已关闭

所以,我一直在复习这门语言,因为我还在努力让我的Clojure知识在长期记忆中留下印象。我在Windows 11的主机上设置了到Arch Linux的Remote WSL 2.0连接,使用VSCode,因为我默认在Linux上开发所有东西。

问题很简单,但我无法定位。

尝试从clojure.core调用(read-line)在我的Calva输出中产生一个无法解析符号:read-line,而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投票
by
已被选中 by
 
最佳答案

如果您正在使用Joyride,这不是JVM Clojure。

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

by
编辑 by
哇,我以为它支持clj和cljs两种。我是否应该使用Leiningen?现在推荐用什么?(我想我稍后会玩ClojureScript)
by
Joyride是学习Clojure的绝佳环境。它有一些限制,如没有`read-line`函数(如您所注意到的),但总体上是一个非常完整的Clojure实现。

如果您想学习JVM Clojure,我建议创建一个最小的`deps.edn`项目,然后从这里开始工作。它可以是最小的,比如:

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

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

然后使用Calva Jack-in启动此项目的REPL(**Calva: 开始项目REPL和连接**)。
by
看懂了,非常感谢你们两位
...