Skip to content

Commit

Permalink
SICP: C2 2019年12月18日09:37:15
Browse files Browse the repository at this point in the history
  • Loading branch information
lijunyzzZ committed Dec 18, 2019
1 parent 92cde5f commit 19d5f32
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 0 deletions.
6 changes: 6 additions & 0 deletions C3/3-1.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
(define (make-accumulator index)
(lambda (number)
(begin (set! index (+ number index)) index)
)
)
(define A (make-accumulator 5))
21 changes: 21 additions & 0 deletions C3/demo.scm
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
(define (m b)
(lambda (a)
(if (>= b a) (begin (set! b (- b a)) b) "err")
)
)

(define a2 (m 100))
(define (make-withdraw balance)
(lambda (amount)
(if (>= balance amount)
(begin (set! balance (- balance amount)) balance)
"error"
)
)
)
(define a1 (make-withdraw 100))
(define (make-bank-account balance)
(lambda (n)
(set! balance (+ balance n))
balance))
(define gates-bank-account (make-bank-account 10))
7 changes: 7 additions & 0 deletions C3/赋值和局部状态.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# 赋值和局部状态

介绍了两种策略,一种是对象策略,针对物理系统里面的对象,创建一个计算对象。流式策略,就是将数据在程序里面传递,有个坏处,如果程序是并发执行的会导致一些问题,解决这个一般采用延时策略。

## 局部状态变量

这个就不说了,以一个状态值记录一些信息在java里面是很常见的事情。

0 comments on commit 19d5f32

Please sign in to comment.