标签: read-eval-print-loop

从REPL测试Clojure main

我在Clojure -main中的:gen-class :main true命名空间中定义了一个函数.我试图从REPL测试它.

我的main功能看起来像这样:

(defn -main [& args]
  ; ...
  )
Run Code Online (Sandbox Code Playgroud)

我试图与调用它(ns/-main "-x" "foo"),(ns/-main "-x foo"),(ns/-main ["-x" "foo"]),(ns/-main (into-array String ["-x" "foo"]),等,以及所有给我的各种错误.

如何从REPL调用此函数并传入一些命令行参数来测试它?

谢谢.

program-entry-point clojure read-eval-print-loop

2
推荐指数
1
解决办法
1321
查看次数

哪个PHP shell?

Python,Ruby或LISP等语言的一个很好的特性是交互式shell的可用性.这是一个Read-Eval-Print循环,允许快速试验语言而无需编写和执行脚本.

不幸的是,PHP没有开箱即用,但可以在线找到 一些外部工具.我找到了三个,我不确定哪个是相对优势?

有没有人尝试过这些炮弹中的一个并且可以提供一些关于使用哪一个的建议?

php shell read-eval-print-loop

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

在纯Java Maven2项目中获取BeanShell(或Scala或JRuby)REPL的任何方法?

我有一个使用Maven2的Java项目.能够获得可以访问已编译应用程序的完整类路径和所有库的REPL非常有用.在SBT中,对于纯Scala和混合Scala/Java项目来说这是微不足道的:我跑了sbt console.

但它对纯Java项目也非常有用.我并不担心什么语言:显然,Scala对此非常好,就像BeanShell一样,但是JRuby或者Jython或者Rhino或者Clojure也会很好地完成这项工作.基本上我希望能够以交互方式戳戳和刺激物体.

在没有BeanShell或Scala或任何添加为运行时/编译时依赖项的情况下,在Maven项目中设置REPL的最简单方法是什么?

java maven-2 scala read-eval-print-loop

2
推荐指数
1
解决办法
439
查看次数

尽管导入了解释器结果类型,但未找到它

我使用Scala 2.9.1.我有一个简单的scala"解释器":

import scala.tools.nsc.interpreter.IMain
import scala.tools.nsc.interpreter.Results.Result
import scala.tools.nsc.interpreter.Results.Success

object App {

  def main(args: Array[String]) {
    val interpreter = new IMain
    val result:Result = interpreter.interpret(args(0))
    result.toString() match {
      case "Success" =>
        {
          var success = result.asInstanceOf[Success]
          println(success.productElement(0))
        };
      case _ => println("very bad result");
    }
  }

}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它(maven)时,我得到:

[ERROR] /home/koziolek/workspace/dsi/src/main/scala/pl/koziolekweb/scala/dsi/App.scala:15: error: not found: type Success
[INFO]           var success = result.asInstanceOf[Success]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,编译器表示没有类型Success,尽管我导入了它.

interpreter scala read-eval-print-loop

2
推荐指数
1
解决办法
490
查看次数

使用外部依赖项加载my-project.core时出现FileNotFoundException

FileNotFoundException在尝试使用外部库时,我在Clojure REPL中收到.例如,我创建了一个新项目lein new example-twitter-project.然后我编辑文件:

project.clj:

(defproject example-twitter-project "1.0.0-SNAPSHOT"
  :description "FIXME: write description"
  :dependencies [[org.clojure/clojure "1.3.0"]
                 [clojure-twitter "1.2.6-SNAPSHOT"]])
Run Code Online (Sandbox Code Playgroud)

src/example-twitter-project/core.clj:

(ns example-twitter-project.core
  (:use 'twitter))
Run Code Online (Sandbox Code Playgroud)

然后我跑lein deps,然后lein repl.

example-twitter-project$ lein repl
REPL started; server listening on localhost port 23833
user=> (use :reload-all 'example-twitter-project.core)
FileNotFoundException Could not locate quote/twitter__init.class or quote/twitter.clj on classpath:   clojure.lang.RT.load (RT.java:430)
Run Code Online (Sandbox Code Playgroud)

同时,我可以use直接从REPL中获取外部库:

user=> (use 'twitter)
nil
user=> (doc twitter/with-oauth)
-------------------------
twitter/with-oauth
([consumer access-token access-token-secret & body])
Macro
  Set the …
Run Code Online (Sandbox Code Playgroud)

clojure leiningen read-eval-print-loop

2
推荐指数
1
解决办法
1880
查看次数

Common Lisp apropos和文档

我知道Common Lisp REPL提供的强大功能.我特意使用SBCL实现.但是,我不确定我的REPL设置是否正确,并且想知道如何从REPL中获得更多功能.

例如,我想找到计算机2 ^ 3 = 8的幂函数.这被称为powpower许多其他语言.所以我做了:

CL-USER> (apropos 'pow)
    POW                                                                                                                                                                          
    POWER                                                                                                                                                                        
    :OP-POWER-EXT (bound)                                                                                                                                                        
    :POWERPC (bound)                                                                                                                                                             
    SB-IMPL::*INTEGER-READER-BASE-POWER* (bound)                                                                                                                                 
    SB-IMPL::*POWER-CACHE* (bound)                                                                                                                                               
    SB-IMPL::+POWER-CACHE-INTEGER-LENGTH-LIMIT+ (bound)                                                                                                                          
    SB-IMPL::COMPUTE-POWERS                                                                                                                                                      
    SB-IMPL::POWER                                                                                                                                                               
    SB-IMPL::POWERS-FOR-BASE (fbound)                                                                                                                                            
    SB-INT:POWER-OF-TWO-CEILING (fbound)                                                                                                                                         
    SB-KERNEL:%POW (fbound)                                                                                                                                                      
    SB-KERNEL::POWER                                                                                                                                                             
    SB-KERNEL:SCRUB-POWER-CACHE (fbound)                                                                                                                                         
    ; No value
Run Code Online (Sandbox Code Playgroud)

我如何查看任何这些功能的文档?在查看文档之前,我是否必须"导入"这些"库"?通常我发现文档丢失了,因为REPL将返回nil.文档在哪里?比如我做了:

CL-USER> (documentation 'power 'function)
Run Code Online (Sandbox Code Playgroud)

它刚刚返回,NIL但正如你从上面给出的列表中看到的那样apropos,power存在!

总结:

  1. 我如何找到函数,数据类型,变量等的文档...(还有哪些查找文档?)?
  2. SB-IMPLSB-KERNEL已导入的库?

感谢您的帮助!

sbcl common-lisp read-eval-print-loop

2
推荐指数
1
解决办法
890
查看次数

ipython和python之间的输出差异

我的理解是python将打印repr输出,但显然并非总是如此.例如:

在ipython中:

In [1]: type([])
Out[1]: list

In [2]: set([3,1,2])
Out[2]: {1, 2, 3}
Run Code Online (Sandbox Code Playgroud)

在python中:

>>> type([])
<type 'list'>
>>> set([3,1,2])
set([1, 2, 3])
Run Code Online (Sandbox Code Playgroud)

ipython在输出上应用了哪些转换?

python repr ipython read-eval-print-loop

2
推荐指数
1
解决办法
392
查看次数

GHCi中的非穷举模式

我想创建一个显示列表最后一个元素的函数.这是我的代码:

ghci> let myLast :: [a] -> a
ghci> let myLast [] = error 
ghci> let myLast [x] = x
ghci> let myLast (x:xs) = myLast xs
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

***Exception: Non-exhaustive patterns in function myLast
Run Code Online (Sandbox Code Playgroud)

我知道你在错过案件时会收到这个错误,但我认为我已经包含了所有可能性.有任何想法吗?

haskell function multiline ghci read-eval-print-loop

2
推荐指数
1
解决办法
379
查看次数

为什么Python数据类型在Python提示符中表现如此?

在终端弄乱python时,我发现了一些奇怪的东西.如果你输入一个像这样的表达式1+2*3,终端将输出7,这很奇怪,因为这不应该打印任何东西,但确实如此.但是如果你使用诸如print("hello world")之类的函数,它将输出hello world,而不是Noneprint返回的内容.此外,键入True输出TrueFalse输出False,但键入None不输出任何内容.python如何决定何时输出值?

python terminal python-3.x read-eval-print-loop

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

在REPL中除以零时会删除28个帧?

scala> 5 / 0
java.lang.ArithmeticException: / by zero
  ... 28 elided
Run Code Online (Sandbox Code Playgroud)

一个简单的算术表达式省略了二十八个帧?这些框架是什么?为什么Scala需要那么多框架来进行安全划分?为什么首先要消除它们?

scala divide-by-zero read-eval-print-loop

2
推荐指数
1
解决办法
33
查看次数