标签: read-eval-print-loop

为什么我不能在没有手动编辑的情况下粘贴Pythons REPL的输出?

大量示例Python代码显示了Python REPL的输出,例如:

>>> class eg(object):
...     def __init__(self, name):
...             self.name = name
...     def hi(self):
...             print "Hi %s" % (self.name)
... 
>>> greeter = eg("Bob")
>>> greeter.hi()
Hi Bob
>>> 
Run Code Online (Sandbox Code Playgroud)

现在,您要做的显而易见的事情就是运行上面的代码..所以,我运行"python"并将上面的文本粘贴到..

>>> >>> class eg(object):
  File "<stdin>", line 1
    >>> class eg(object):
     ^
SyntaxError: invalid syntax
>>> ...     def __init__(self, name):
  File "<stdin>", line 1
    ...     def __init__(self, name):
    ^
Run Code Online (Sandbox Code Playgroud)

代码坏了!?..

为了让它运行,我将不得不..

  • 一次复制并粘贴一行,确保正确复制所有缩进.如果你搞砸了(比如,错过一个领先的空间,你必须重新开始)
  • 使用文本编辑器删除>>>...,然后再粘贴

这不是一个大问题,但考虑到以这种格式呈现了多少示例代码,看起来很奇怪你必须这样做.

python user-interface read-eval-print-loop

4
推荐指数
1
解决办法
326
查看次数

Node.replace与Node中的/和\不同于Chrome?

我正在尝试在Nodejs中制作路由器.其中很大一部分是URI -> action,所以我需要一个简单的可配置URI列表,并将它们重新定位到regexp以匹配请求URI.

简单!我用PHP做了一百万次.给予或接受.

这就是我做的(测试):

> uri = '/users/#/status/*'
> uri.replace(/\//g, '\\/').replace(/#/g, '(\d+)').replace(/\*/g, '([^/]+)')
Run Code Online (Sandbox Code Playgroud)

我正在做的是1)逃避/和2)替换#为a \d+和3)替换*[^/]+

在Chrome中,这可以按预期工作:

< \/users\/(d+)\/status\/([^/]+)
Run Code Online (Sandbox Code Playgroud)

逃脱/并更换#*正确.这是V8.

在Nodejs中:

< \\/users\\/(d+)\\/status\\/([^/]+)
Run Code Online (Sandbox Code Playgroud)

阙!?每个/都是双重逃脱?我要么得到双重逃脱,/要么没有逃脱/.

正则表达式是对的,对吗?

我正在使用Chrome 15 dev(V8 javascript)和Node 0.5.8 dev(V8 javascript).这里发生了什么?

可能有趣
如果我测试/^\/users\/(\d+)\/status\/([^/]+)/.test('/users/1/status/x')它在Chrome和Node中都返回true.

javascript regex escaping node.js read-eval-print-loop

4
推荐指数
1
解决办法
5225
查看次数

如何在Pry中自定义Ruby命令的返回输出

我能够使用Pry.config.prompt〜/ .pryrc中的设置自定义Pry的提示,以使Pry更容易为孩子们.现在我想摆脱返回输出:

Enter Ruby code> puts 'hello'
hello
=> nil
Enter Ruby code> 
Run Code Online (Sandbox Code Playgroud)

=> nil是混淆了刚学编程的孩子.我可以抑制Pry中的返回值输出吗?

ruby irb read-eval-print-loop pry

4
推荐指数
1
解决办法
863
查看次数

如何从CoffeeScript脚本中启动CoffeeScript repl?

如果我做

repl = require 'repl'

repl.start {useGlobal: true}
Run Code Online (Sandbox Code Playgroud)

它启动一个Node repl.如何启动CoffeeScript repl呢?

谢谢

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

4
推荐指数
2
解决办法
1913
查看次数

如何为VBS启动交互式控制台?

与此问题非常相似:

如何为Perl启动交互式控制台?

我只是希望能够一次开始输入VBS语句,并立即对它们进行评估,比如Python的IDLE.

console vbscript interpreter interactive read-eval-print-loop

4
推荐指数
2
解决办法
3571
查看次数

常见的lisp帮助相当于python中的帮助

在python解释器中,可以简单地键入help("name")以访问文档name.

  1. common-lisp REPL(我正在使用SBCL)中的等价物是什么?
  2. 请注意,我在emacs 24.3中使用SLIME

提前致谢.

emacs common-lisp slime read-eval-print-loop

4
推荐指数
1
解决办法
110
查看次数

连接到具有ring/compojure的clojure nREPL的问题

在Java 1.7.0_21 Java HotSpot(TM)64位服务器VM上运行Leiningen 2.3.4

我无法连接到nREPL服务器.

我使用了一个新项目lein new luminus,然后为drawbridge([com.cemerick/drawbridge "0.0.6"])添加了一个依赖项.

我加了一个处理器路线如下REPL(基于https://devcenter.heroku.com/articles/debugging-clojure):

(def drawbridge-handler
  (-> (cemerick.drawbridge/ring-handler)
      (wrap-keyword-params)
      (wrap-nested-params)
      (wrap-params)
      (wrap-session)))

(defn wrap-drawbridge [handler]
  (fn [req]
    (if (= "/repl" (:uri req))
      (drawbridge-handler req)
      (handler req))))
Run Code Online (Sandbox Code Playgroud)

并添加wrap-drawbridge到我的中间件.

然后我使用启动服务器

lein ring server-headless

连接似乎运行良好,因为执行GET请求会http:localhost:3000/repl产生响应:["[\n","\n]"]

但我无法连接到REPL:

> lein repl :connect 0.0.0.0:3000/repl
Connecting to nREPL at 0.0.0.0:3000/repl
Run Code Online (Sandbox Code Playgroud)

并且,过了一段时间:

SocketException The transport's socket appears to have lost its connection to the nREPL server
    clojure.tools.nrepl.transport/bencode/fn--4287/fn--4288 (transport.clj:95)
    clojure.tools.nrepl.transport/bencode/fn--4287 (transport.clj:95) …
Run Code Online (Sandbox Code Playgroud)

clojure leiningen read-eval-print-loop nrepl

4
推荐指数
1
解决办法
2620
查看次数

REPL - 重新定义后恢复可调用

我在Python REPL中做了一些工作,我重新定义了一个原始的可调用的.

list = [] 会阻止tuple = list((1,2,3))从工作了.

除了重新启动REPL之外,还有一种方法可以"恢复"或将列表重新分配到其默认值吗?

也许有进口或超级班?或者它会永远丢失并坚持我分配的内容,直到我重新启动REPL?

python read-eval-print-loop

4
推荐指数
1
解决办法
41
查看次数

读取SBCL中带有类型插槽的结构

考虑这个简单的代码示例:

(defstruct test
  (:example nil :type (simple-array single-float)))

(defparameter test-struct
  (make-test :example (make-array 10 :element-type 'single-float
                                     :initial-element 1.0)))
Run Code Online (Sandbox Code Playgroud)

我们可以看到,没有什么可以疯狂的,定义了一个带有单个槽的简单结构.我们还指定:example插槽是强类型,预期是单个浮点数组.这里没有问题,一切正常.

我们test-struct现在写一个文件:

(with-open-file (out "~/Desktop/out.test"
             :direction :output
             :if-exists :supersede)
  (format out "~s" test-struct))
Run Code Online (Sandbox Code Playgroud)

同样,没有惊喜,我们在桌面上获得一个漂亮的小文件,其中包含以下内容:

#S(TEST :EXAMPLE #(1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0))
Run Code Online (Sandbox Code Playgroud)

然而,紧张开始蔓延,因为我们注意到没有任何迹象表明这个特定的文字数组应该包含单个浮点数.有了这种怀疑,让我们尝试加载这个结构:

(defparameter loaded-struct
  (with-open-file (in "~/Desktop/out.test")
    (read in nil)))
Run Code Online (Sandbox Code Playgroud)

我们在这里,SBCL愉快地将我们放入调试器:

尝试读取类型化数组时,SBCL会进入调试器

问题是:有没有办法指示SBCL验证结构中的这个数组插槽是否是有效类型并加载它?或者换句话说,是否可以在不诉诸构建自定义编写器和构造函数的情况下读取具有强类型插槽的结构?

lisp arrays sbcl common-lisp read-eval-print-loop

4
推荐指数
1
解决办法
87
查看次数

更改Xcode 10 Playgrounds变量初始化更改?Xcode 10 Playgrounds是翻译吗?

我注意到Xcode 10中的Playgrounds不再允许使用已声明但未初始化的变量.例如:虽然这段代码可以在Xcode 9游乐场中运行,但在Xcode 10游乐场(至少在Beta 1中),它会崩溃:

var myValue: Int
//...
myValue = 100

print (myValue)

// Xcode 9 prints 100
// Xcode 10 reports an error: variables currently must have an initial value when entered at the top level of the REPL
Run Code Online (Sandbox Code Playgroud)
  1. 这是新行为,还是当前Xcode 10 beta中的一个错误?

  2. 我曾经将早期的Xcode Playgrounds称为翻译,但是仍然会考虑将Xcode 10游乐场作为翻译(并且总是正确的)?Apple将装订线中的"运行"按钮称为"编译"代码.

谢谢!

xcode read-eval-print-loop swift-playground

4
推荐指数
1
解决办法
2284
查看次数