有没有办法从Scala中评估任意字符串,就好像直接在Scala REPL中输入相同的文本一样?我的意思是,我想做这样的事情:
scala> eval("val x = 42")
scala> x
res2: Int = 42
Run Code Online (Sandbox Code Playgroud)
由于Scala REPL使用jline接受eval循环中的命令(我相信)然后编译/解释它,因此必须有一种方法来提交任意一行文本.如果有必要,我愿意破解Scala REPL.
我是Elm的初学者,作为一名前Haskell程序员,我想知道,如果在Haskell中有类似的方式输入解释器/ REPL:
:i number
Run Code Online (Sandbox Code Playgroud)
所以我知道这在Elm中不起作用,但有些东西与Haskell相同:
:i Num
Run Code Online (Sandbox Code Playgroud)
我想获得有关类型类及其所有实例的详细信息.
此外,在Haskell文档中,有关于基本Haskell类的类型层次结构的可用信息:
https://www.haskell.org/onlinereport/basic.html
这样的东西也可以用于榆树吗?
提前致谢.
我不清楚如何在Julia REPL上定义类型的外观.有许多类似的声音功能,包括:显示,显示,打印,写作等.
使用Emacs Slime,如何访问REPL中最后一个表达式返回的对象或值?
在ipython中,_如果返回值是我所期望的,我可以将它保存在变量中.
Slime有类似的东西吗?
我正在尝试使用 REPL 中给出的文本更改 Node 的 REPL 提示。
我最初的尝试是这样的。
import repl from 'repl'
let PROMPT = 'original > '
repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text} >`
return callback()
}
})
Run Code Online (Sandbox Code Playgroud)
我意识到这行不通,因为在进程开始时设置了 repl 的提示。
我想出了这样的东西,它在输入命令后用新的提示启动一个新的 repl。
import repl from 'repl'
let PROMPT = 'original > '
let REPL = createRepl(PROMPT)
function createRepl (prompt) {
return repl.start({
ignoreUndefined: true,
prompt: PROMPT,
eval: (text, context, filename, callback) => {
PROMPT = `${text.replace(/\n/, '')} >`
REPL.close() …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种在REPL中"输入"模块的方法,这样我就可以无限制地访问所有符号(而不仅仅是导出的符号),并且在REPL中定义的任何函数(re)都可以进入指定的模块.(基本上这是Common Lisp in-package宏的功能.)
这在面向REPL的工作流程中很有用,因为我可以在REPL中编写与我正在开发的模块中相同的代码.
手册推荐了一个工作流程,我对所有内容进行了限定,但这看起来很烦人.
使用以下递归定义深度优先搜索Clojure(JVM)和ClojureScript(使用浏览器连接的repl和lumo测试)REPL产生两个不同的输出,即打印节点的顺序不同,Clojure REPL产生重复:f.ClojureScript顺序是我期望的行为.为什么是这样?
码:
(defn dfs
([g v] (dfs g v #{}))
([g v seen]
(println v)
(let [seen (conj seen v)]
(for [n (v g)]
(if-not (contains? seen n)
(dfs g n seen))))))
(def graph {:a [:b :c :e]
:b [:d :f]
:c [:g]})
(dfs graph :a)
Run Code Online (Sandbox Code Playgroud)
Cloure REPL输出:
:a
:b
:c
:e
:d
:f
:g
:f
;; => ((() ()) (()) (()))
Run Code Online (Sandbox Code Playgroud)
CLojureScript REPL输出:
:a
:b
:d
:f
:c
:g
:e
;; => ((() ()) (()) ())
Run Code Online (Sandbox Code Playgroud) clojure depth-first-search read-eval-print-loop clojurescript
对不起,我刚刚开始学习clojure。我在 REPL CLI 中运行了很多命令。但现在我无法清除 CLI 屏幕。cls 命令在 REPL 中也不起作用。提前致谢!
使用后node的互动/命令行模式的探索,我怎么能我的命令历史记录复制到一个文本文件,为自己未来的记录?
向上箭头键会调用之前的node语句,而且已经在登录之间保持不变,因此历史记录已经保存在 node.js 中的某处。但是它保存在哪里呢?我怎样才能复制它?
但我什么也找不到 node --help
有没有办法确定 julia 脚本myprog.jl是通过命令行调用的julia myprog.jl还是通过 REPL调用的include("myprog.jl")?
背景:我正在使用ArgParse.jl包,因为我无法从 REPL 传递命令行参数,所以我只想ARGS = "argA --optB 1 --flagC"在调用之前设置一个变量include("myprog.jl"),以获得与julia myprog.jl argA --optB 1 --flagC命令行相同的结果。为此,我需要知道程序是从命令行调用还是从 REPL 调用,这样我就可以编写类似
if called_from_repl
parse_args(split(ARGS),s)
else
parse_args(s)
end
Run Code Online (Sandbox Code Playgroud) julia ×3
clojure ×2
node.js ×2
common-lisp ×1
elm ×1
emacs ×1
javascript ×1
lisp ×1
module ×1
namespaces ×1
scala ×1
slime ×1
types ×1