CS61A Scheme

1. Special Forms

•if expression: (if <predicate> <consequent> <alternative>)
• and and or: (and <e1> ... <en>), (or <e1> ... <en>)
• Binding symbols: (define <symbol> <expression>)
• New procedures: (define (<symbol> <formal parameters>) <body>)

在这里插入图片描述

2. Lambda Expressions

(lambda (<formal-parameters>) <body>)

Example:
(define (plus4 x) (+ x 4))
(define plus4 (lambda (x) (+ x 4)))

3. Cond & Begin

The cond special form that behaves like if-elif-else statements in Python
In python:

if x > 10:
 print('big')
elif x > 5:
 print('medium')
else:
 print('small')

In Scheme:

(cond ((> x 10) (print 'big))
 ((> x 5) (print 'medium))
 (else (print 'small)))

The begin special form combines multiple expressions into one expression
In python:

if x > 10:
 print('big')
 print('guy')
else:
 print('small')
 print('fry')

In Scheme:

(cond ((> x 10) (begin (print 'big) (print 'guy)))
 (else (begin (print 'small) (print 'fry))))

4. Let Expressions

The let special form binds symbols to values temporarily; just for one expression
In Python:

a = 3
b = 2 + 2
c = math.sqrt(a * a + b * b)
"""a and b are still bound down here"""

In Scheme:

(define c (let ((a 3)
 (b (+ 2 2)))
 (sqrt (+ (* a a) (* b b)))))
 """e a and b are not bound down here"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值