scheme和common lisp 区别

Scheme and Common Lisp use different names for some of the basic system functions. Many Lisp programs can be translated to the other dialect simply by changing these names (or by providing the existing names as macros or functions). Compatibility packages exist to allow programs in one dialect to run in the other dialect.

The following table gives correspondences between Scheme functions and the equivalent Common Lisp functions.

Scheme: Common Lisp:
(define (fn args ...) code) (defun fn (args ...) code)
begin progn
set! setq
eq? eq
eqv? eql
equal? equal
number? numberp
zero? zerop
pair? consp
null? null
display princ
write prin1
newline terpri
(list-tail lst n) (nthcdr n lst)
(list-ref lst n) (nth n lst)
subset? subsetp
map mapcar
for-each mapc
vector-ref aref
vector-set! (setf (aref ...) val)
substring subseq
#t t
#f nil
'() '() or nil

The following table lists standard Common Lisp functions that are provided in the file initdr.scm.(http://www.cs.utexas.edu/ftp/bogo/cs307/initdr.scm

dotimes
dolist
intersection
union
set-difference
copy-list
subset
every
some
copy-tree
subst
sublis
nconc
nreverse

转自:

上一篇:Unity 2D游戏开发教程之使用脚本实现游戏逻辑


下一篇:Winform开发框架中实现同时兼容多种数据库类型处理