标签: read-eval-print-loop

Scala REPL自动退出

Scala REPL表现得很奇怪,或者这可能是预期的行为.当我创建MainFrame对象并将其可见性设置为true时,将显示一个窗口.但是,如果我关闭窗口,Scala REPL将退出终端.示例会话:

 ~$ scala
 scala> import swing._
 scala> val frame = new MainFrame()
 scala> frame.visible = true
 ~$                             //when I close the window
Run Code Online (Sandbox Code Playgroud)

我在kubuntu上使用scala 2.9.1

scala read-eval-print-loop

3
推荐指数
2
解决办法
246
查看次数

Scala REPL无法导入packge

我正在尝试在Scala REPL中导入com.lambdaworks.crypto.SCryptUtil(来自加密).我正在从包含com/lambdaworks/crypto的Java目录运行REPL.

REPL无法找到com.lambdaworks.crypto.SCryptUtil,但它可以自动完成,com.lambdaworks.crypto但在此之后找不到任何内容.

在我的项目中包含包后,我在IntelliJ IDEA中使用REPL时,我能够找到SCryptUtil该类.

我错过了导入所需的一些类路径参数吗?

import scala read-eval-print-loop

3
推荐指数
1
解决办法
3828
查看次数

R7RS计划的反思能力

关于编程语言Scheme的R7RS报告描述了在Scheme系统中运行Scheme代码的两种方法:

1)方案系统可以运行报告中第5.1节所述的程序.

2)方案系统可以提供read-eval-print-loop,其中交互式地解释Scheme代码.

我的问题是如何在Scheme系统中反映这两种运行Scheme代码的方式,以及R7RS报告中包含的内容.

有一个eval库过程eval,它在一个正在运行的Scheme系统中执行Scheme代码,所以eval看起来就像我在搜索的内容.

但是,我可以插入的唯一保证可变环境evalinteraction-environmentrepl库过程返回的环境.但是,有了这个,我无法可靠地模拟上面的REPL(第2点),因为REPL允许导入表单,而eval程序不需要.

此外,eval由于其他原因,我无法使用交互环境来完整的Scheme程序:它通常不为空,特别是它包含所有绑定(scheme base).

为了实现1)在运行的Scheme系统中,eval库过程environment看起来很有前途,因为它允许事先导入库(这是运行程序的一部分).但是,环境是不可变的,所以我无法评估define环境中的s.一种方法是将程序体包装在一个lambda表单中,以便define定义局部变量.但是,这也行不通:在一个lambda表单中,所有定义都必须出现在body的开头(对于Scheme程序的顶层不是这样),并且在lambda表单库中,绑定可以被词法覆盖,顶级绑定无法实现.

由于Scheme是Turing-complete,我当然可以在正在运行的Scheme系统中模拟Scheme系统,但我想知道是否可以通过使用该eval过程.我感兴趣的一个原因是eval可能会优化(例如通过JIT编译器后端),因此使用此过程可能会提供接近本机的速度(与手动编写简单的解释器相比).

reflection scheme eval read-eval-print-loop r7rs

3
推荐指数
1
解决办法
579
查看次数

启动ClojureScript浏览器REPL

我正在尝试在浏览器中启动ClojureScript REPL.理想情况下我还不想使用Austin:我首先想要让最简单的REPL工作.

我尝试了各种教程,到目前为止我没有设法让它工作.基本上我不明白人们说:"启动ClojureScript浏览器REPL"时的含义.

到目前为止我做了:

lein new mies hellow
Run Code Online (Sandbox Code Playgroud)

和:

lein cljsbuild auto hellow
Run Code Online (Sandbox Code Playgroud)

这是我的core.js文件:

(ns hellow.core
  (:require [clojure.browser.repl :as repl]))

(enable-console-print!)

(println "Hello world!")    
(. js/console (log "Hello again"))    
(repl/connect "http://localhost:9000/repl")    
(. js/console (log "Ah, this prints too"))
Run Code Online (Sandbox Code Playgroud)

当我打开index.html(调用core.js)时,我可以在Chrome的开发人员工具的JavaScript控制台中看到所有内容都已正确记录.

(repl/connect ...)显然失败了.这是Chrome的开发者工具所展示的内容;

Failed to load resource http://localhost:9000/repl?xpc=%7B%22cn%22%...
Run Code Online (Sandbox Code Playgroud)

在几乎所有关于ClojureScript的论坛帖子/博客文章/教程中我都读过这个主题,我偶然发现了一句话:"启动浏览器REPL"或类似内容.

如何启动浏览器REPL?这是从浏览器加载index.html 之前必须完成的事情吗?

我可以从Emacs启动这个浏览器REPL吗?

如何在不加载index.html/core.js的情况下测试浏览器REPL是否正常工作?

我怎样才能然后确认,之后的index.html/core.js被加载到浏览器中,该(REPL /连接...)core.js所做的工作,实际上是连接到REPL?

browser emacs read-eval-print-loop clojurescript

3
推荐指数
1
解决办法
1461
查看次数

Clojure Ring/Compojure REPL中的动态处理程序更新

我使用了一个新的Compojure Leiningen项目lein new compojure test.Web服务器由lein repl然后运行

user=> (use 'ring.adapter.jetty)
user=> (run-jetty test.handler/app {:port 3000})
Run Code Online (Sandbox Code Playgroud)

路由和应用程序处理程序规范是微不足道的:

(defroutes app-routes
  (GET "/*.do" [] "Dynamic page")
  (route/not-found "Not Found"))

(def app
  (wrap-defaults app-routes site-defaults))
Run Code Online (Sandbox Code Playgroud)

现在,在更改app-routes定义中的任何内容后(例如,将"动态页面"文本更改为其他任何内容,或修改URI匹配字符串),我不会在浏览器中获得更新的文本/路由.但是,当app-routes稍微改变定义时

(defn dynfn [] "Dynamic page fn")
(defroutes app-routes
  (GET "/*.do" [] (dynfn))
  (route/not-found "Not Found"))
Run Code Online (Sandbox Code Playgroud)

我在更改返回值时会获得动态更新dynfn.另外,遵循本文的建议并将app定义修改为

(def app
  (wrap-defaults #'app-routes site-defaults))
Run Code Online (Sandbox Code Playgroud)

(注意#'透明地创建一个var app-routes)也有帮助!

为什么会这样?有没有其他方式可以获得真正的动态行为defroutes

谢谢!

clojure compojure ring read-eval-print-loop

3
推荐指数
1
解决办法
681
查看次数

在REPL中抑制输出

当调用返回内容的函数时,REPL打印输出.如何在不借助临时添加nil作为函数的最后一行的情况下抑制此打印?

clojure read-eval-print-loop

3
推荐指数
1
解决办法
634
查看次数

如何在ocaml(顶级)中显示大长度的列表

我已经创建了一个包含很多元素的列表,ocaml我想看看里面有什么,但ocaml只是向我展示了这样的一小部分:[e1,e2,e3;...].如何配置ocaml显示所有内容?

ocaml read-eval-print-loop ocaml-toplevel

3
推荐指数
1
解决办法
95
查看次数

在节点js中使用REPL

  1. 在nodejs中使用REPL有什么用?
  2. 使用REPL有哪些用例/场景?
  3. 我什么时候应该在nodejs中使用REPL节点模块?

我已经理解了API Doc,如何包含REPL模块以及如何使用prompt和eval启动REPL实例.

但任何人都可以帮助我理解上述问题吗?这样我才能理解REPL模块究竟是如何使用的?

javascript node.js read-eval-print-loop node-modules

3
推荐指数
1
解决办法
483
查看次数

Perl是否有交互式命令行环境?

嗨,我想知道Perl是否有类似于Rstudio的东西?这是运行命令的能力,将所有变量保留在内存中而不退出脚本.

例如,假设我执行此命令my $temp = 83;然后不是结束脚本而是更改值$temp = 22; print "$temp \n";,依此类推,但我不会结束脚本并继续处理它.在处理大型数据集和一般工作流程时,这将非常有用.我遇到的最接近的是使用插件的Visual Studio Code,我可以在我的脚本中执行特定的代码块.但是我没有找到一种方法将变量持久保存在内存中.
谢谢!

perl read-eval-print-loop

3
推荐指数
1
解决办法
185
查看次数

Emacs启动Repl中的错误

我使用Emacs进行Clojure开发。当我通过cider-jack-in启动Repl时,出现了一些错误,但是在回显区域中我只能看到最后几行。当我单击回显区域时,它说“最小缓冲区窗口未激活”。如何检索整个错误消息?

emacs clojure read-eval-print-loop

3
推荐指数
1
解决办法
54
查看次数