问题标签 [read-eval-print-loop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
f# - 如何实现 F# Read Eval Print Loop (REPL)?
我想在我的应用程序中添加一个 F# REPL 以进行实时调试。我正在查看fsi.exe
(F# Interactive) 的源代码,并且有很多东西看起来像是在使用 F# 编译器内部。因此,我无法在我们的应用程序上下文中编译相同的代码。
是否有一个很好的简单示例在某处实现 F# REPL?我希望这相当容易。
windows - Windows 中的 Clojure REPL
我想学习 Clojure,但不是每次都打开一个完整的 IDE,而是希望能够有一个批处理文件(或类似文件)来打开一个体面的 REPL 来快速破解示例。(即我不是在寻找 Emacs/Netbeans/Eclipse IDE 讨论)。
例如,这会启动最基本的 REPL:
如果您将 jline 和 clojure-contrib jar 文件添加到 clojure 目录,那么
windows - 来自 USB 驱动器的 Clojure REPL
我现在正在尝试学习 Clojure,但这个周末我要去父母那里。他们有一台 Windows 笔记本电脑,但我不想安装任何东西……那么是否可以仅使用安装在 USB 驱动器上的文件来运行 Clojure REPL?
documentation - 如何在 Common Lisp REPL 中查看文档字符串和其他符号信息?
我对 CL 完全陌生,我想学习如何阅读文档字符串并从 REPL 获取其他帮助信息。类似于help(symbol)
Python、symbol?
iPython 或:t
Haskell:i
的 GHCi 中的东西。
所以,给定一个符号名称,我想知道:
- 它绑定到什么样的值,如果有的话(一个函数,一个变量,根本没有)
- 如果它是一个函数或一个宏,那么它的位置参数是什么
- 如果它有一个文档字符串,显示它
- 它来自什么包或文件或何时定义
我发现有(documentation '_symbol_ '_type_)
,但这不是我所需要的。在我可以使用'function
. 然后它只返回文档字符串,它可能丢失或不足以使用该符号。'variable
'compiler-macro
documentation
例如,在 Lisp 中,对于的帮助mapcar
不是很有用(CLisp 的 REPL):
我希望能够看到这样的东西:
clojure - 有没有办法从另一个进程与 Clojure REPL 进程对话?
我想知道是否可以制作一个将表单发送到lein repl
启动的 REPL 会话的 Vim 插件。有没有办法将消息发送到现有的 jline.ConsoleRunner 进程?
python - 如何将文件加载到 python 控制台中?
我有一些 python 代码行,我不断地将它们复制/粘贴到 python 控制台中。有load
命令或我可以运行的东西吗?例如load file.py
c++ - 如何在终端上同步输入和输出?
我正在为自定义脚本语言编写一个 linux shell,我想在用户为单个语句输入的每个后续行之前打印一个“...”,第一行打印一个“>>>” ,然后等待输入。下面是一个例子:
我正在使用 阅读该行fgets
,在我完全阅读后,我打印“...”,然后使用另一个调用重复fgets
. 这适用于中等速度的交互式输入。但是如果我将包含换行符的代码粘贴到终端中,我得到的是以下内容
“...”的打印太晚了,即使我fflush
在将它们打印到stdout
. 有谁知道是否有什么特别的事情要做来完成这项工作?
scala - 有没有办法在 Scala 的 REPL 中使用 ctrl-d 作为前向删除?
所以在 Scala REPL 中,我可以使用 ctrl-{p,n,a,e} 来执行上一行、下一行、行首和行尾。但是,如果我不能使用 ctrl-d 进行前向删除,我很快就会发疯。
是否有可能以某种方式实现这一目标?
我正在使用 Mac。
更新
将以下行添加到接受的答案以获得 ctrl-{a,e}。在 GitHub的 jline2 存储库 jline2 存储库中可以找到更大的键绑定文件。
更新2
我刚刚安装了 Scala 2.9.0.final,我可以确认 ctrl-d 现在可以正常工作。它是正向删除,除非它在终止 shell 时是空行。
clojure - clojure REPL 不会获取对 defrecord 所做的更改
我建立了一个 leiningen 项目。在其中一个 clojure 源文件中,我定义了一些记录。我的工作流程通常是启动 emacs 并连接到 'lein swank' REPL。连接到 REPL 后,我切换到适当的名称空间并 Cc Ck 一个文件,这样我就可以开始使用 REPL 和文件中的代码了。但是,如果我对该文件中的记录进行更改并 Cc Ck 它,REPL 不会获取更改。
因此,就目前而言,每次我需要对记录进行更改时,我都必须停止 lein swank 进程,重新启动它,然后从 emacs 重新连接到它。这很快就变老了。我错过了什么?我尝试过 Cc Cl 而不是 Cc Ck,但这不起作用。我试过删除项目根目录中的“类”目录,但这也是不行的。
我将不胜感激任何见解或建议。
另外,顺便说一句,我总是在定义记录的命名空间中工作。
编辑:我实际上正在更改 defrecord 中协议的实现。一旦我更改它并使用 Cc Ck 编译,并在 REPL 中创建新记录,REPL 仍然使用旧协议实现。