![]() |
|
Spaces home SICP自留地ProfileFriendsBlogMore ![]() | ![]() |
|
Added a blog entry "sicp 3.14" 先看一下loop都做了什么,它把第一个列的开头部分和第二个列重新组合,然后对第一列余下的部分和新组合得的列再次应用loop。
不难看出mystery实际上返回的是一个列的逆序列,但该过程的side effect值得注意,它把原先的x的“尾巴”全部截掉了! July 30 12:06 PM Added a blog entry "3.8思考" 一开始的版本实际上被我写成
(define (f num) (let ((s 1)) (if (= s 1) (begin (set! s 0) num) 0))) 这样的话f永远都是把给她的参数原样反回 July 28 10:49 PM Added a blog entry "sicp 3.8" ;the idea behind the procedure is straightforward;it only passes argument once, after that it returns zero no matter what(define f (let ((s 1)) (lambda (num) (if (= s 1) (begin (set! s 0 July 28 10:45 PM Added a blog entry "sicp 3.7" ;不难看出make-joint需要做的是在客户账户中添加一条额外的密钥并返回该账户;由于帐户这个对象在系统中是以过程形式定义的,不调用过程无法修改其本地参数;有必要在make-account中添加额外的命令来收集新密钥
(define (make-account balance password);初始化时以list形式输入password (define (withdraw amount) July 28 4:21 PM |
|
||||
|
|