问题标签 [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.

0 投票
2 回答
1208 浏览

python - 将 emacs 缓冲区发送到任意 Python 进程

我喜欢这个python-send-buffer命令,但是我经常使用嵌入在应用程序中的 Python,或者通过自定义包管理系统启动 Python(以启动具有某些依赖项的 Python)。换句话说,我不能只运行“python”并获得一个有用的 Python 实例(python-send-buffer依赖的东西)

我想要实现的是:

  • 在任何 Python 解释器(或允许您评估 Python 代码的应用程序)中,导入一个magic_emacs_python_server.py模块(根据需要附加sys.path
  • 在 emacs 中,运行magic-emacs-python-send-buffer

这将评估远程 Python 实例中的缓冲区。

看起来它应该很简单——Python 模块在一个线程中监听一个套接字。它在主线程中进行评估,并返回repr()结果(或者可能捕获 stdout/stderr,或者两者兼而有之)。emacs 模块只会将文本发送到套接字,等待字符串作为响应,并将其显示在缓冲区中。

听起来很简单,这样的东西一定已经存在了...... IPython 有ipy_vimserver,但这是错误的方法。还有swank,虽然它看起来非常特定于 Lisp,但有一个 Javascript 后端看起来很像我想要的......但搜索几乎没有发现,除了一些模糊(可能是真的)声称 SLIME 不能很好地工作非 Lisp 语言

简而言之:

  • 是否存在将代码从 emacs 缓冲区发送到现有 Python 进程的项目?
  • 如果没有,你会如何推荐我写这样的东西(不是很熟悉 elisp) - SWANK?IPython的服务器代码?从头开始的简单 TCP 服务器?
0 投票
3 回答
4049 浏览

node.js - node.js - 评估实时进程

是否有人使用现有的 node.js REPL 为自己设置了类似的东西?我没有想到一个快速的方法来做到这一点。

我今天这样做的方式是使用 emacs,这个: https ://github.com/ivan4th/swank-js

该模块由以下部分组成:

  1. Emacs 的 SLIME-js 插件,与 js2-mode 结合使用,您可以简单地在函数 def 的某处发出 CMx - 然后关闭函数的字符串到 ..

  2. 用 Node.js 编写的 Swank-js 服务器(是的,您可以从本地计算机直接评估到远程进程) - 它接收您评估过的函数的字符串并实际评估它

  3. 一个完整的部分,可让您使用 BROWSER 连接到该服务器上的另一个端口,然后让您在该浏览器上操作 DOM(这非常棒但不相关)

我的解决方案在 emacs 端使用 SLIME-js,并且我在 app.js 文件中需要('swank-js')

现在..关于我的解决方案或其他可能的问题,我有几个问题和疑问:

Q1:这是不是太过分了?有人有什么秘密方法可以将 nano 中的东西评估到他的实时过程中吗?

Q2:我不得不改变 swank-js 的 EVALing 方式。它使用了某种黑魔法,如下所示:

据我了解,它只是将全局变量复制到新的上下文中,并且在 eval 时,不会更改原始函数定义 - SOOO .. 我只是使用普通的“eval”并且它可以工作。

您对此有何评论?

Q3:为了重新评估一个函数,它需要是一个 GLOBAL 函数 - 将所有函数定义为全局(类似clojure)是不好的做法吗?你认为还有另一种方法可以做到这一点吗?

0 投票
6 回答
4361 浏览

objective-c - REPL for Objective-C

Is there a REPL for Objective-C?

I am learning Objective-C and am sorely missing a REPL, coming from a Python background.

0 投票
2 回答
326 浏览

macos - Clojure REPL 在 OS X 上打印 doseq 输出时卡住了,但在 Linux 上却没有

我通过命令在我的 Snow Leopard OS X 机器和我的 Ubuntu linux 机器上运行 Clojure 1.2 lein repl。我正在阅读 enlive 教程https://github.com/swannodette/enlive-tutorial/

当我进入“第三次刮擦”教程并运行以下命令时:

它在 Ubuntu 上按预期工作,但在 OS X 上,它只输出第一个故事,然后只有在我输入一些表达式后才输出其余的故事,无论是数字、a (println "hello world") 还是诸如此类。REPL 在 OS X 上的工作方式似乎有些奇怪——就好像缓冲区没有完全刷新它的输出一样。

我注意到函数doseq中使用了一个宏print-stories。所以如果我这样做:

我在 OSX 上得到这个输出:

这只是第一项。如果我然后输入0(或任何有效的表达式)并按回车,我会得到其余的输出:

我还注意到这种行为并不一致。有时,什么都没有输出,然后我可以通过键入0或其他东西将其刷新并输入。有时,它会正确清除所有输出。

有没有人有任何想法?

0 投票
8 回答
1448 浏览

ruby - 为什么 REPL 风格的开发在 Ruby 中不常见?

看起来 Lisp 和 Clojure 程序员经常直接在 REPL 中开发程序。参看。Clojure 开发:IDE 还是 REPL?

我的问题是,为什么这种方法在 Ruby 中不是更常见, via irb?这只是文化差异,还是有结构(特定于语言)的原因,为什么以 REPL 为中心的开发在 Lisps 中比在 Ruby 和 Python 等语言中更常见?

0 投票
2 回答
2959 浏览

c++ - REPL / LINQpad / F# C++0x 的交互式替代方案?

在为 C# 和 F# 开发代码时,我喜欢使用 LINQpad 和 FSI。对于haskell,我使用了拥抱。当然,脚本语言几乎总是带有 REPL。几乎每个现代浏览器都附带了一个相当漂亮的 javascript repl/ide。

C ++ 0x有类似的东西吗?

整洁的功能将是:

  • 可以包含/链接到预先存在的代码
  • 编译周期又短又快——花一秒钟就可以,几分钟就不行。
  • 自动完成/智能感知或类似的会很好,或者至少是一个不错的 google-this-function-for-me 快捷键
  • 至少部分 C++0x 支持。

我主要使用 Windows,但如果 linux 上有一个很棒的工具不需要 1337 小时来配置每个新发行版(即不是大多数 emacs 配置),我也会有兴趣听到这些。

相关: C++ 解释器/控制台/片段编译器(两年前,专注于 linux)

编辑:一个并非完全不相关的说明是,我想用它来感受 C++0x 以及其他东西 - 所以尽可能多地支持 C++0x - 至少对于 auto 和 lambdas - 会很好. 我不是在寻找一个逐个声明的 repl,而是一个快速的开发环境。

0 投票
3 回答
756 浏览

.net - 如何将 Clojure REPL 添加到现有的 .NET 应用程序?

如何将交互式 Clojure REPL 添加到现有的 .NET 应用程序中,以便可以将其用作实时调试辅助工具?(理想情况下,这将是一个 C# REPL,但这些都有些偏离(也许是 .NET 5.0?)我最后听到的:http ://channel9.msdn.com/blogs/pdc2008/tl16 )

我知道 GitHub 上有Clojure-CLR项目,但我想知道是否有人已经提出了将 Clojure-CLR REPL 集成到现有应用程序中的指南或简单库?

0 投票
1 回答
284 浏览

shell - 让 Scala 的 REPL 选项卡完成向下读取列而不是跨行?

Scala REPL 中制表符补全的输出跨行读取,项目在开始新行之前从左到右排序。这让我感觉很尴尬;我习惯于在开始新列之前阅读从上到下排序的列表。有没有办法改变输出,以便它读取列,而不是?

0 投票
10 回答
27402 浏览

clojure - 如何退出 REPL

我正在尝试退出 REPL。

我使用(. System exit 0)or (System/exit 0),但这会导致错误:

有没有其他方法可以退出 REPL?我该如何解决这个错误?

0 投票
12 回答
18762 浏览

r - 如何禁用“保存工作区图像?” 在 R 中提示?

当我退出交互式 R shell 时,它每次都会显示一个烦人的提示:

我总是对它回答“不”,因为如果我想保存我的工作,我会在尝试退出之前这样做。

如何摆脱提示?


注:见?save.image