Scheme
quote
阻止记号被求值
将符号原封不动地传递到程序,而不是求值后的其他内容
cons ,car ,cdr
一对 pairs 是
cons
car
是前面的cdr
是后面的nil
是 empty
if ,and ,define
if
表达式(if <predicate> <consequent> <alternative>)
and
和or
(and <e1> ... <en>), (or <e1> ... <en>)
绑定符号。
(define <symbol> <expression>)
新程序。
(define (<symbol> <formal parameters>) <body>)
lambda
(lambda (<formal-parameters>) <body>)
举例:
(define (plus4 x) (+ x 4))
(define plus4 (lambda (x) (+ x 4)))
注意
scheme
中只有#f, false, False
代表假值=, eq?, equal?
=
只能用于比较数字。eq?
在Python中类似于==
,用于比较两个non-pairs
(数字、布尔运算等)。否则,eq?
的行为就像在Python中的is
一样。equal?
比较pairs
, 通过比较它们的cars
是否相等,它们的cdrs
是否相等。否则,equal?
的行为就像eq?
一样。
Last updated
Was this helpful?