File tree Expand file tree Collapse file tree 3 files changed +16
-16
lines changed Expand file tree Collapse file tree 3 files changed +16
-16
lines changed Original file line number Diff line number Diff line change 1
- [ docs/lang0] remove ` (fix) `
2
- [ docs/lang0] remove ` (fixpoint) `
1
+ [ docs/lang0] remove ` (fix) ` & ` (fixpoint) `
3
2
[ docs/lang0] 用中文重新整理 lambda encoding 相关的知识,形成一本书。
4
3
[ docs/lang0] 用中文重新整理 lambda encoding 和 self type 相关的知识。
5
4
[ lang0] 支持直接递归函数与相互递归函数,不能判断等价的地方就不判断。
Original file line number Diff line number Diff line change 1
1
(import " ./boolean.scm" true false if and or not)
2
2
(import " ./nat-church.scm" zero add1 sub1 zero?)
3
3
(import " ./nat-church.scm" one two three four)
4
+ (import " ./fix.scm" Y)
4
5
5
- (define (even? n )
6
- (if (zero? n) true
7
- (if (zero? (sub1 n)) false
8
- (even? (sub1 (sub1 n))))))
6
+ (define even?-wrap
7
+ (lambda (even? )
8
+ (lambda (n )
9
+ (if (zero? n) true
10
+ (if (zero? (sub1 n)) false
11
+ (even? (sub1 (sub1 n))))))))
9
12
10
- (define (odd? n )
11
- (if (zero? n) false
12
- (if (zero? (sub1 n)) true
13
- (odd? (sub1 (sub1 n))))))
13
+ (define even? (Y even?-wrap))
14
14
15
- even?
16
- odd?
15
+ (define odd?-wrap
16
+ (lambda (odd? )
17
+ (lambda (n )
18
+ (if (zero? n) false
19
+ (if (zero? (sub1 n)) true
20
+ (odd? (sub1 (sub1 n))))))))
17
21
18
- (assert-equal even? even?)
19
- (assert-equal odd? odd?)
22
+ (define odd? (Y odd?-wrap))
20
23
21
24
(assert-equal
22
25
(even? zero)
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments