问题标签 [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 投票
1 回答
374 浏览

python - Pylons REPL 重新评估运行 Web 服务器中的代码

我在一个预先存在的 pylons 项目(okfn 的 ckan)上用 python 编程,但我是一个 lisper 并且习惯于这种做事方式。

如果我做出虚假陈述,请纠正我:

在塔架中,我似乎应该说

$ 粘贴服务 --reload

获得一个会注意到变化的网络服务器。

那时我可以更改一个函数,保存文件,然后转到我的浏览器来测试更改。

如果我想在制作网页的过程中检查函数中的变量,那么我输入 raise "hello",然后当我加载页面时,我会得到一个基于浏览器的调试器,我可以在其中检查程序。

这一切都非常好,并且可以流畅地工作,我的印象是人们倾向于编写 pylons 代码。

不幸的是,重新加载需要几秒钟,它不断打破我的思路。

我想做的是从 emacs 运行 Web 服务器(尽管命令行上的 python REPL 几乎一样好),这样我就可以在编辑器中更改一个函数,然后将新代码发送到运行进程而无需重新启动它。(使用命令行 repl 我想我必须复制并粘贴新的东西,但这也是可行的,只是不太方便)

Python 看起来非常动态,并且在很多方面很像 lisp,所以我原则上看不出有任何原因导致它不起作用。

所以我想问题是:

有没有人熟悉 lisp 的做事方式和 Pylons,他们能告诉我如何在 pylons 中编程 lisp 方式吗?或者由于某种原因它是不可能的还是一个坏主意?

编辑:

我可以在 emacs 中从我的 python 解释器运行网络服务器:

我可以让代码停止并通过插入向我展示它在做什么:

所以现在我需要的只是一种让网络服务器在不同线程上运行的方法,以便控制权返回到 REPL,我可以在运行过程中重新定义函数和变量。

这似乎可行,除了如果我在 REPL 重新定义一个函数,更改不会反映在网络服务器中。有谁知道为什么?

0 投票
1 回答
578 浏览

scala - 访问由 Scala REPL 创建的字节码

有什么方法可以访问 REPL 生成的字节码(即您刚刚在 REPL 中键入和执行的 Scala 行)。

我需要它来将类加载到远程节点。

0 投票
3 回答
3091 浏览

compiler-construction - REPL、解释器和编译器之间的关系

来自维基百科

REPL 通常被误称为解释器。这是用词不当——许多使用编译(包括字节码编译)的编程语言都有 REPL,例如 Common Lisp 和 Python。

来自对这个帖子的回复

交互式解释器使用 REPL。口译员不需要配备。例如,您可以在非交互模式下(在文件上)运行 Python,它不会使用 read-eval-print 循环。

我想知道 REPL [del] 是否总是存在 [/del]为解释器而存在?维基百科是否说编译器也存在 REPL?如果有,情况如何?

谢谢并恭祝安康!

解释器是指编译后立即执行的解释器。

0 投票
3 回答
364 浏览

scala - 调用 getResourceAsStream() 方法时,Scala REPL 类加载器返回“null”

为什么 Scala REPL 的TheReplClassLoader.getResourceAsStream(someGeneratedClassName)返回 null?

0 投票
1 回答
380 浏览

sql - clojure.contrib.sql 和 REPL 交互

我们有一个 Clojure Web 应用程序,它使用 jndi 创建到数据库的连接。查询数据库的代码如下所示:

jndi 配置是在 jetty 启动时从 jetty.xml 文件加载的。但是它在 REPL 中不起作用,使得开发有些不切实际。

有没有办法构造代码,以便当不在服务器中运行时,当没有可用的 jndi 上下文时,从配置文件而不是 jetty.xml 加载 db 配置?

0 投票
5 回答
2680 浏览

c# - C# 动态代码评估、Eval、REPL

有谁知道是否有办法在运行时评估 c# 代码。例如。我想允许用户输入 DateTime.Now.AddDays(1) 或类似的东西作为字符串,然后评估字符串以获得结果。

我想知道是否可以访问 emmediate windows 功能,因为它似乎会评估动态输入的每一行。

我发现 VB 有一个来自 VBA*.dll 的未记录的 EbExecuteLine() API 函数,并且想知道是否有与 c# 等效的东西。

我还找到了一个自定义工具https://github.com/DavidWynne/CSharpEval(它曾经在 kamimucode.com 但作者已将其移至 GitHub)似乎可以做到这一点,但我更喜欢这样的东西.NET 的一部分

谢谢

0 投票
3 回答
457 浏览

clojure - appengine 魔术,几乎满意,但在 repl 上获得空指针

我让 webapp(用 appengine-magic 和 lein 制作)在 dev_appserver.sh 上工作,但因为我需要更多的交互性和更少的重启服务器,所以我更喜欢使用 repl。现在的问题是,在我这样做之后(require '[appengine-magic.core :as ae])(use 'myapp.core)并尝试为应用程序提供服务,(ae/serve myapp)我得到了这个异常:

我也尝试过 (in-ns 'myapp.core) 但效果相同。当我将 Web 应用程序处理程序直接粘贴到 repl 并提供服务时,它可以工作,但不能来自我的文件。

调用 myapp 或 myapp-handler 清楚地给出了“对象”,所以我真的应该在正确的命名空间上......

项目.clj

core.clj 很简单:

0 投票
4 回答
2484 浏览

haskell - Haskell 中的函数

我是函数式编程的新手。我有一个基本问题。

我正在使用 Hugs 解释器,

我想用 Haskell 写一个函数;我浏览了几个教程,但我没有得到它。

这给了我一个语法错误:-S

0 投票
3 回答
2123 浏览

language-agnostic - 一个 REPL 将它们全部绑定?

我想知道是否存在非特定语言的REPL 。我花了很多时间研究 REPL(主要用于 Clojure、Scala 和 Haskell),而捆绑的那些都或多或少地让我感到沮丧。看起来 REPL 的工作非常通用,因为它们:

  • 阅读:接受用户输入
  • 评估:将输入传递给某个运行时进行处理
  • 打印:将结果打印到屏幕上
  • 循环:等待下一个用户输入

我不明白为什么不应该有一些与语言无关的 REPL,但我一直找不到这样的东西。我想在我的理想 REPL 中做一些事情:

  • Linux 命令行应用程序
  • 无限历史可通过向上箭头访问
  • 能够在重新运行之前编辑以前的命令
  • ctrl-r 用于像 bash 一样的历史搜索
  • 一个 REPL 中的多个会话,因此我可以轻松地在它们之间切换

而且更乐观

  • 语法高亮,上下文感知代码完成

这存在吗?

0 投票
7 回答
10744 浏览

lisp - Lisp 是唯一带有 REPL 的语言吗?

除了 Lisp(ruby、scala)之外,还有其他语言说他们使用 REPL(Read、Eval、Print、Loop),但不清楚 REPL 的含义是否与 Lisp 中的相同。Lisp REPL 与非 Lisp REPL 有何不同?