1. 在Common Lisp 眼中,一个符号的symbol-value 和symbol-function 是不一样的,而Scheme

对两者不作区分。在Scheme 里面,变量只有唯一对应的值,它可以是个函数,也可以是另一种对

象。因此,在Scheme 中就不需要#’ 或者funcall 了。Common Lisp 的:

(let ((f #’(lambda (x) (1+ x))))

(funcall f 2))

在Scheme 中将变成:

(let ((f (lambda (x) (1+ x))))

(f 2))

2. 由于Scheme 只有一个名字空间,因而它没有必要为各个名字空间专门设置对应的赋值操作

符(例如defun 和setq)。取而代之,它使用define,define 的作用和defvar 大致相当,同时

用set! 替代了setq。在用set! 为全局变量赋值前,必须先用define 创建这个变量。

3. 在Scheme 中,通常用define 定义有名函数,它行使着defun 和defvar 在Common Lisp 中的功

能。Common Lisp 的:

(defun foo (x) (1+ x))

有两种可能的Scheme 翻译:

(define foo (lambda (x) (1+ x)))

(define (foo x) (1+ x))

4. 在Common Lisp 中,函数的参数按从左到右的顺序求值。而在Scheme 中,有意地不对求值顺序

加以规定。(并且语言的实现者对于忘记这点的人幸灾乐祸。)

5. Scheme 不用t 和nil,相应的,它有#t 和#f。空列表,(),在某些实现里为真,而在另一些实现里

为假。

6. cond 和case 表达式里的默认子句在Scheme 中带有else 关键字,而不是Common Lisp 中的t。

7. 某些内置操作符的名字被改掉了:consp 成了pair?,而null 则是null?,mapcar (几乎) 是map,

等等。通常根据上下文,应该能看出这些操作符的意思。

lisp scheme 果壳_common lisp和scheme的区别相关推荐

  1. lisp和python_给Lisp程序员的Python简介

    作者:Peter Norvig,译者:jineslong 这是一篇为Lisp程序员写的Python简介(一些Python程序员告诉我,这篇文章对他们学习Lisp也有帮助,尽管这不是我的本意).基本上, ...

  2. lisp和python_给 Lisp 程序员的 Python 简介

    这是一篇为Lisp程序员写的Python简介(一些Python程序员告诉 我,这篇文章对他们学习Lisp也有帮助,尽管这不是我的本意).基本上,Python可以看作一个拥有"传统" ...

  3. lisp scheme 果壳_走出Lisp(Scheme)困境

    从去年开始入坑Lisp,周周转转也算是基本入门了这一传说中的语言. Lisp确实是一门很开明的语法规范.lambda是基本定义形式,递归在其骨子深处,试图通过函数表达世界,的确这个世界是周而复始的,有 ...

  4. 引入静态变量_Common Lisp变量的一些事情

    Lisp-1 vs Lisp-2[1] Scheme的求值模型非常简单:只是用一个名字空间,所有表达式中相应位置的值应该是明确的. Common Lisp和Scheme最大的不同是,函数名字空间和数据 ...

  5. comon lisp标准_common Lisp学习笔记(十四)

    14 Macros 宏通常通过defmacro来定义,它定义了怎样"翻译"出一个函数调用. 我们定义一个宏的时候说明一个函数调用应该翻译成什么,这个翻译称为宏展开(macro-ex ...

  6. lisp算零碎面积总和_Common Lisp:符号计算简单介绍(第十二章)

    第十二章 结构体和类型系统(Structures and The Type System) 12.1 导语 Common Lisp包含了很多内建的数据类型,他们一起形成了一个类型系统.我们到现在为止学 ...

  7. 天正lisp修改了配置_Common Lisp支持中文编辑和编译的windows下环境搭建志

    第一步,安装emacs+slime+sbcl/ccl/... 2.1安装完成后重启系统,否则会提示:fatal error encountered in SBCL pid 10236(tid 9971 ...

  8. lisp语言1y1c,常青树LISP语言

    常青树LISP语言 介绍 Lisp是历史最悠久的编程语言之一,接近五十年.Lisp以一种简洁的方式有效地实现了多种高级语言设计的目的.LISP全名叫LISt Processor,List是LISP的主 ...

  9. comon lisp标准_common-lisp – Common Lisp的最新标准

    Common Lisp > 1984:CLtL,Common Lisp由Common Lisp,the Language一书定义 > 1990 CLtL2,Common Lisp,由Com ...

最新文章

  1. 计算机组成原理试题2,计算机组成原理试题2.doc
  2. Android利用RecognizerIntent识别语音并简单实现打电话动作
  3. instance在ceph对应pool的位置查询
  4. 开源学习管理系统(LMS)的比较
  5. 【图文详解】,配置NLB群集
  6. 4-2cglib 动态代理
  7. 梦里看到你为我写的情书
  8. CentOS7 网络配置--NAT模式
  9. mysql gtid 主键冲突_MySQL Last_SQL_Errno: 1062----经典错误,主键冲突
  10. Rainbow Tables
  11. 使用Go语言实现单词翻译功能/simpledict 命令行词典
  12. 华为防火墙IPSEC简单搭建
  13. 图片服务器-存储图片技巧
  14. python图片logo_Python logo
  15. autoCAD恐吓式销售_恐吓式软文的例子?恐吓式软文营销经典案例分享
  16. Windows --- 微信内网可用,但浏览器外网无法连接
  17. 大神推荐,这几个电脑实用技巧,让你电脑用起来更加流畅舒服
  18. Unity Ugui 详解 Content Size Fitter 和 Horizontal Layout Group 的使用
  19. Latex 偏导符号 ∂
  20. 在线YAML转Properties工具

热门文章

  1. 使用Go语言创建静态文件服务器
  2. STL_stack/queue
  3. 深入理解5种IO模型
  4. 利用networkx求解网络的重叠度
  5. JAVA中获得前一天的时间
  6. 微信小程序 official-account组件 关注公众号
  7. C#合成解析XML与JSON
  8. linux下面某些常用命令的用法【转】
  9. Gradle学习之使用java plugin
  10. 使用GetValue和SetValue来设置属性