lisp scheme 果壳_common lisp和scheme的区别
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的区别相关推荐
- lisp和python_给Lisp程序员的Python简介
作者:Peter Norvig,译者:jineslong 这是一篇为Lisp程序员写的Python简介(一些Python程序员告诉我,这篇文章对他们学习Lisp也有帮助,尽管这不是我的本意).基本上, ...
- lisp和python_给 Lisp 程序员的 Python 简介
这是一篇为Lisp程序员写的Python简介(一些Python程序员告诉 我,这篇文章对他们学习Lisp也有帮助,尽管这不是我的本意).基本上,Python可以看作一个拥有"传统" ...
- lisp scheme 果壳_走出Lisp(Scheme)困境
从去年开始入坑Lisp,周周转转也算是基本入门了这一传说中的语言. Lisp确实是一门很开明的语法规范.lambda是基本定义形式,递归在其骨子深处,试图通过函数表达世界,的确这个世界是周而复始的,有 ...
- 引入静态变量_Common Lisp变量的一些事情
Lisp-1 vs Lisp-2[1] Scheme的求值模型非常简单:只是用一个名字空间,所有表达式中相应位置的值应该是明确的. Common Lisp和Scheme最大的不同是,函数名字空间和数据 ...
- comon lisp标准_common Lisp学习笔记(十四)
14 Macros 宏通常通过defmacro来定义,它定义了怎样"翻译"出一个函数调用. 我们定义一个宏的时候说明一个函数调用应该翻译成什么,这个翻译称为宏展开(macro-ex ...
- lisp算零碎面积总和_Common Lisp:符号计算简单介绍(第十二章)
第十二章 结构体和类型系统(Structures and The Type System) 12.1 导语 Common Lisp包含了很多内建的数据类型,他们一起形成了一个类型系统.我们到现在为止学 ...
- 天正lisp修改了配置_Common Lisp支持中文编辑和编译的windows下环境搭建志
第一步,安装emacs+slime+sbcl/ccl/... 2.1安装完成后重启系统,否则会提示:fatal error encountered in SBCL pid 10236(tid 9971 ...
- lisp语言1y1c,常青树LISP语言
常青树LISP语言 介绍 Lisp是历史最悠久的编程语言之一,接近五十年.Lisp以一种简洁的方式有效地实现了多种高级语言设计的目的.LISP全名叫LISt Processor,List是LISP的主 ...
- comon lisp标准_common-lisp – Common Lisp的最新标准
Common Lisp > 1984:CLtL,Common Lisp由Common Lisp,the Language一书定义 > 1990 CLtL2,Common Lisp,由Com ...
最新文章
- 计算机组成原理试题2,计算机组成原理试题2.doc
- Android利用RecognizerIntent识别语音并简单实现打电话动作
- instance在ceph对应pool的位置查询
- 开源学习管理系统(LMS)的比较
- 【图文详解】,配置NLB群集
- 4-2cglib 动态代理
- 梦里看到你为我写的情书
- CentOS7 网络配置--NAT模式
- mysql gtid 主键冲突_MySQL Last_SQL_Errno: 1062----经典错误,主键冲突
- Rainbow Tables
- 使用Go语言实现单词翻译功能/simpledict 命令行词典
- 华为防火墙IPSEC简单搭建
- 图片服务器-存储图片技巧
- python图片logo_Python logo
- autoCAD恐吓式销售_恐吓式软文的例子?恐吓式软文营销经典案例分享
- Windows --- 微信内网可用,但浏览器外网无法连接
- 大神推荐,这几个电脑实用技巧,让你电脑用起来更加流畅舒服
- Unity Ugui 详解 Content Size Fitter 和 Horizontal Layout Group 的使用
- Latex 偏导符号 ∂
- 在线YAML转Properties工具