lisp和python区别_Lisp的read eval打印循环与Python有什么不同?

在基于Lisp的系统中,通常在程序从REPL(read eval print loop)运行时开发程序。所以它集成了很多工具:完成、编辑器、命令行解释器、调试器。。。默认情况是这样。键入表达式时出错-您处于另一个REPL级别,并启用了一些调试命令。你必须做点什么来摆脱这种行为。

REPL概念有两种不同的含义:类似于Lisp(或其他一些类似语言)中的Read Eval Print循环。它读取程序和数据,评估并打印结果数据。Python不是这样工作的。Lisp的REPL允许您以元编程的方式直接工作,编写生成(代码)的代码,检查扩展,转换实际代码等。。Lisp将read/eval/print作为顶层循环。Python的顶部循环类似于readstring/evaluate/printstring。

命令行界面。交互式外壳。有关IPython的示例,请参见。将其与常见的Lisp的SLIME进行比较。

默认模式下Python的默认shell对于交互使用来说并没有那么强大:Python 2.7.2 (default, Jun 20 2012, 16:23:33)

[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> a+2

Traceback (most recent call last):

File "", line 1, in

NameError: name 'a' is not defined

>>>

你收到一条错误信息就这样。

将其与CLISP REPL进行比较:rjmba:~ joswig$ clisp

i i i i i i i ooooo o ooooooo ooooo ooooo

I I I I I I I 8 8 8 8 8 o 8 8

I \ `+' / I 8 8 8 8 8 8

\ `-+-' / 8 8 8 ooooo 8oooo

`-__|__-' 8 8 8 8 8

| 8 o 8 8 o 8 8

------+------ ooooo 8oooooo ooo8ooo ooooo 8

Welcome to GNU CLISP 2.49 (2010-07-07)

Copyright (c) Bruno Haible, Michael Stoll 1992, 1993

Copyright (c) Bruno Haible, Marcus Daniels 1994-1997

Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998

Copyright (c) Bruno Haible, Sam Steingold 1999-2000

Copyright (c) Sam Steingold, Bruno Haible 2001-2010

Type :h and hit Enter for context help.

[1]> (+ a 2)

*** - SYSTEM::READ-EVAL-PRINT: variable A has no value

The following restarts are available:

USE-VALUE :R1 Input a value to be used instead of A.

STORE-VALUE :R2 Input a new value for A.

ABORT :R3 Abort main loop

Break 1 [2]>

CLISP使用Lisp的条件系统进入调试器REPL。它显示了一些重启。在错误上下文中,新的REPL提供了扩展命令。

让我们使用:R1重新启动:Break 1 [2]> :r1

Use instead of A> 2

4

[3]>

因此,您可以获得程序的交互式修复和执行运行。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值