【发布时间】:2017-06-09 23:04:28
【问题描述】:
这是 Peter Norvig 的 repl 函数:
def repl(prompt='lis.py> '):
"A prompt-read-eval-print loop."
while True:
val = eval(parse(raw_input(prompt)))
if val is not None:
print(schemestr(val))
def schemestr(exp):
"Convert a Python object back into a Scheme-readable string."
if isinstance(exp, List):
return '(' + ' '.join(map(schemestr, exp)) + ')'
else:
return str(exp)
哪个有效:
>>> repl()
lis.py> (define r 10)
lis.py> (* pi (* r r))
314.159265359
lis.py> (if (> (* 11 11) 120) (* 7 6) oops)
42
lis.py>
我正在尝试用 Java 编写具有相同功能的程序,尝试了 Java 文档中的类,但没有这样的工作;任何想法?谢谢。
【问题讨论】:
-
下载java 9。它叫JShell。
-
Java 没有 REPL 或
eval()方法,即使有,它也肯定不会评估非 Java 代码。 -
@Andreas 咳嗽
jython咳嗽 -
@ElliottFrisch 是的,它带有自己的 REPL:jython.org/docs/using/cmdline.html#command-line
-
Groovy 或 GroovyConsole 都可以搞定
标签: java user-input prompt