From 887ebf902f0161e5b670bda8bf8bf5c8f986226b Mon Sep 17 00:00:00 2001 From: Darcy Shen Date: Mon, 26 Feb 2024 11:32:29 +0800 Subject: [PATCH 1/3] slide 03 --- SICP/slide03.tm | 145 ++++++++++++++++++++++++++++-------------------- 1 file changed, 84 insertions(+), 61 deletions(-) diff --git a/SICP/slide03.tm b/SICP/slide03.tm index 29db6da..e5aceb6 100644 --- a/SICP/slide03.tm +++ b/SICP/slide03.tm @@ -57,7 +57,87 @@ Tree Recursion >>> - > + |<\hidden> + \<#4EF6\>\<#8868\>\<#8FBE\>\<#5F0F\>\<#548C\>\<#8C13\>\<#8BCD\>\V\<#77ED\>\<#8DEF\>\<#8FD0\>\<#7B97\>> + + <\itemize> + \<#5E94\>\<#7528\>\<#5E8F\>\<#6C42\>\<#503C\>\<#FF08\>Scheme\<#4F7F\>\<#7528\>\<#7684\>\<#662F\>\<#5E94\>\<#7528\>\<#5E8F\>\<#6C42\>\<#503C\>\<#FF09\> + + \<#6B63\>\<#5219\>\<#5E8F\>\<#6C42\>\<#503C\> + + + \<#4F8B\>\<#5206\>\<#6790\>\<#FF1A\>\<#5B9E\>\<#73B0\>\<#6C42\>\<#7EDD\>\<#5BF9\>\<#503C\>\<#7684\>\<#591A\>\<#79CD\>\<#65B9\>\<#5F0F\>> + + <\with|par-columns|2> + <\equation*> + =||||>|0,>>||>|>||>|0.>>>>>|\> + + + <\session|scheme|default> + <\unfolded-io|Scheme] > + (define (abs1 x) + + \ \ (cond ((\ x 0) x) + + \ \ \ \ \ \ \ \ ((= x 0) 0) + + \ \ \ \ \ \ \ \ (else (- x)))) + <|unfolded-io> + abs1 + + + <\unfolded-io|Scheme] > + (define (abs2 x) + + \ \ (if (\ x 0) + + \ \ \ \ \ \ x + + \ \ \ \ \ \ (- x))) + <|unfolded-io> + abs2 + + + <\unfolded-io|Scheme] > + (define (abs3 x) + + \ \ (or (and (\ x) x) (- x))) + <|unfolded-io> + abs3 + + + <\unfolded-io|Scheme] > + (abs1 1) + <|unfolded-io> + 1 + + + <\unfolded-io|Scheme] > + (abs1 -1) + <|unfolded-io> + 1 + + + <\input|Scheme] > + \; + + + + + <\folded> + <\question> + \<#4E3A\>\<#4EC0\>\<#4E48\>\<#548C\>\<#662F\>\<#5FC5\>\<#987B\>\<#7684\>\<#FF1F\> + + <|folded> + <\exercise> + \<#4F7F\>\<#7528\>\<#5B9E\>\<#73B0\>\<#548C\>\<#3002\> + + + \<#53C2\>\<#8003\>\<#6587\>\<#6863\>\<#FF1A\> + + + \; + > <\initial> @@ -66,70 +146,13 @@ + <\references> <\collection> - > - > - > - > - > - > - > - > - > - > - > - > - > - > - > + > - - -<\auxiliary> - <\collection> - <\associate|figure> - |1>||\<#64CD\>\<#4F5C\>\<#7B26\>\<#548C\>\<#64CD\>\<#4F5C\>\<#6570\>>|> - - |2>||\<#4E00\>\<#4E2A\>\<#5177\>\<#4F53\>\<#7684\>\<#4F8B\>\<#5B50\>>|> - - <\associate|gly> - \<#8BED\>|> - - \<#8FBE\>\<#5F0F\>|> - - \<#6570\>|> - - \<#5408\>|> - - \<#8C61\>|> - - \<#5408\>\<#5F0F\>|> - - \<#5408\>\<#51FD\>\<#6570\>|> - - \<#6362\>\<#6A21\>\<#578B\>|> - - \<#7528\>\<#5E8F\>\<#6C42\>\<#503C\>|> - - \<#5219\>\<#5E8F\>\<#6C42\>\<#503C\>|> - - <\associate|toc> - |\<#5E94\>\<#7528\>\<#5E8F\>\<#6C42\>\<#503C\> - |.>>>>|> - > - - |\<#6B63\>\<#5219\>\<#5E8F\>\<#6C42\>\<#503C\> - |.>>>>|> - > - - |math-font-series||\<#672F\>\<#8BED\>\<#8868\>> - |.>>>>|> - - - - \ No newline at end of file + \ No newline at end of file From e9f886c8908ff527adb4e93f61d6a8903922165f Mon Sep 17 00:00:00 2001 From: Darcy Shen Date: Mon, 26 Feb 2024 14:39:00 +0800 Subject: [PATCH 2/3] wip --- SICP/slide03.tm | 347 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 342 insertions(+), 5 deletions(-) diff --git a/SICP/slide03.tm b/SICP/slide03.tm index e5aceb6..6e20201 100644 --- a/SICP/slide03.tm +++ b/SICP/slide03.tm @@ -1,13 +1,13 @@ -> +> <\body> <\hide-preamble> >>> - + \<#57FA\>\<#7840\>SICP\<#FF1A\>\<#7B2C\>3\<#8BFE\>> <\wide-tabular> @@ -57,7 +57,7 @@ Tree Recursion >>> - |<\hidden> + |<\hidden> \<#4EF6\>\<#8868\>\<#8FBE\>\<#5F0F\>\<#548C\>\<#8C13\>\<#8BCD\>\V\<#77ED\>\<#8DEF\>\<#8FD0\>\<#7B97\>> <\itemize> @@ -137,7 +137,329 @@ \; - > + |<\hidden> + \<#73AF\>\<#FF1A\>\<#6C42\>\<#548C\>> + + \<#4F8B\>\<#5206\>\<#6790\>\<#FF1A\>\<#6C42\>\<#548C\>> + + <\with|par-columns|2> + <\equation*> + i=1+2+\+n + + + \; + + <\render-code> + result := 0 + + 1 n|result := result + i> + + + + + + <\with|par-columns|2> + <\session|scheme|default> + <\folded-io|Scheme] > + (define result 0) + <|folded-io> + 0 + + + <\input|Scheme] > + (for (x (list 1 2 3 4)) + + \ \ (set! result (+ result x))) + + + <\folded-io|Scheme] > + result + <|folded-io> + 10 + + + <\input|Scheme] > + \; + + + + <\session|python|default> + <\input> + \\\\ + <|input> + def sum_n(n): + + \ \ \ \ result= 0 + + \ \ \ \ for i in range(n): + + \ \ \ \ \ \ \ \ result= result + (i + 1) + + \ \ \ \ return result + + + <\folded-io> + \\\\ + <|folded-io> + sum_n(3) + <|folded-io> + 6 + + + <\folded-io> + \\\\ + <|folded-io> + list(range(3)) + <|folded-io> + [0, 1, 2] + + + <\input> + \\\\ + <|input> + \; + + + + + <\exercise> + \<#4F7F\>\<#7528\>Scheme\<#5B9E\>\<#73B0\>range\<#3002\> + + |<\hidden> + \<#6027\>\<#9012\>\<#5F52\>\<#FF1A\>\<#6C42\>\<#548C\>> + + <\session|scheme|default> + <\unfolded-io|Scheme] > + (define (sum start end) + + \ \ (cond ((\ start end) 0) + + \ \ \ \ \ \ \ \ ((= start end) end) + + \ \ \ \ \ \ \ \ (else (+ start (sum (+ start 1) end))))) + + \; + <|unfolded-io> + sum + + + <\unfolded-io|Scheme] > + (sum 2 3) + <|unfolded-io> + 5 + + + <\input|Scheme] > + \; + + + + <\with|par-columns|2|par-left|1fn|par-right|4fn|par-columns-sep|0fn> + <\eqnarray*> + i>||i>>|||i|)>>>|||i|)>|)>>>|||>>|||+i|)>|)>>>>|||+|)>|)>>>|||+|)>|)>>>|||>>|||>|||>>> + + + + \; + |<\hidden> + \<#5F62\>\<#9012\>\<#5F52\>\<#FF1A\>\<#6590\>\<#6CE2\>\<#90A3\>\<#5951\>\<#6570\>\<#5217\>> + + <\folded> + <\equation*> + =||| + n=0,>>|| + n=1,>>|+>|.>>>>>|\> + + <|folded> + + |>>||>>||>>> + > + + + <\session|scheme|default> + <\folded-io|Scheme] > + (define (fib n) + + \ \ (cond ((= n 0) 0) + + \ \ \ \ \ \ \ \ ((= n 1) 1) + + \ \ \ \ \ \ \ \ (else (+ (fib (- n 1)) (fib (- n 2)))))) + <|folded-io> + fib + + + <\folded-io|Scheme] > + (fib 2) + <|folded-io> + 1 + + + <\input|Scheme] > + \; + + + |<\hidden> + \<#5F62\>\<#9012\>\<#5F52\>\\<#8FED\>\<#4EE3\>> + + <\equation*> + =||| + n=0,>>|| + n=1,>>|+>|.>>>>>|\> + + + <\equation*> + ||||||>|||>|||||||>|>|>|+f>>|=0>|=1>||||||||>||=1>|=2>|||||||>|||=2>|=3>||||||>||||=b>|=a+b>|||||>>>> + + + <\with|par-columns|2> + <\algorithm> + <\math> + a\ 0 + + b \ 1 + + <\algo-for|i \ 1 n> + a \ b + + b \ a + b + + + b + + + + <\algorithm> + a \ 0 + + b > 1 + + <\algo-for|i \ 1 n> + old_b \ b + + b \ a + b + + a \ old_b + + + b + + + + \; + + \; + |<\hidden> + \<#6CBB\>\<#6CD5\>\<#FF1A\>\<#627E\>\<#96F6\>\<#95EE\>\<#9898\>> + + <\itemize> + \<#65E0\>\<#9650\>\<#591A\>\<#4E00\>\<#5143\>\<#7EB8\>\<#5E01\> + + \<#65E0\>\<#9650\>\<#591A\>\<#4E94\>\<#5143\>\<#7EB8\>\<#5E01\> + + \<#65E0\>\<#9650\>\<#591A\>\<#5341\>\<#5143\>\<#7EB8\>\<#5E01\> + + \<#65E0\>\<#9650\>\<#591A\>\<#4E94\>\<#5341\>\<#5143\>\<#7EB8\>\<#5E01\> + + + <\folded-documentation> + <\question> + \6\<#6709\>\<#51E0\>\<#79CD\>\<#627E\>\<#96F6\>\<#65B9\>\<#5F0F\>\<#FF1F\> + + <|folded-documentation> + \6=6\\1, \6=1\\5+1 + + + <\folded-documentation> + <\question> + \16\<#6709\>\<#51E0\>\<#79CD\>\<#627E\>\<#96F6\>\<#65B9\>\<#5F0F\>\<#FF1F\> + + <|folded-documentation> + \; + + + <\folded-documentation> + <\question> + \<#5BF9\>\<#4E8E\>\n\<#FF0C\>\<#4E00\>\<#5171\>\<#6709\>\<#591A\>\<#5C11\>\<#79CD\>\<#627E\>\<#96F6\>\<#65B9\>\<#5F0F\>\<#FF1F\> + + <|folded-documentation> + <\equation*> + f|)>=f|)>+f|)>+f|)>+f|)>+f|)>+f|)>+f|)>+f|)>+f|)>+f|)>+f|)>+f|)>+f|)>+f|)> + + + <\equation*> + f|)>=f|)>+f|)> + + + |<\shown> + \<#6CBB\>\<#6CD5\>\<#FF1A\>\<#627E\>\<#96F6\>\<#95EE\>\<#9898\>> + + <\equation*> + f|)>=|)>+f|)>>|2>>||1>>||>>>> + + + <\session|scheme|default> + <\unfolded-io|Scheme] > + (define (\<#53D6\>\<#53EF\>\<#7528\>\<#6700\>\<#5C0F\>\<#9762\>\<#503C\> + n) + + \ \ (cond ((= n 4) 1) + + \ \ \ \ \ \ \ \ ((= n 3) 5) + + \ \ \ \ \ \ \ \ ((= n 2) 10) + + \ \ \ \ \ \ \ \ ((= n 1) 50) + + \ \ \ \ \ \ \ \ (else 0))) + <|unfolded-io> + \<#53D6\>\<#53EF\>\<#7528\>\<#6700\>\<#5C0F\>\<#9762\>\<#503C\> + + + <\unfolded-io|Scheme] > + (define (\<#627E\>\<#96F6\>\<#65B9\>\<#6CD5\>\<#6570\> n k) + + \ \ (if (or (\ n 2) (\= k 1)) + + \ \ \ \ \ \ (if (and (\= n (\<#53D6\>\<#53EF\>\<#7528\>\<#6700\>\<#5C0F\>\<#9762\>\<#503C\> + k)) (= (% n (\<#53D6\>\<#53EF\>\<#7528\>\<#6700\>\<#5C0F\>\<#9762\>\<#503C\> + k)) 0)) + + \ \ \ \ \ \ \ \ \ \ 1 + + \ \ \ \ \ \ \ \ \ \ 0) + + \ \ \ \ \ \ (+ (\<#627E\>\<#96F6\>\<#65B9\>\<#6CD5\>\<#6570\> n (- k + 1)) (\<#627E\>\<#96F6\>\<#65B9\>\<#6CD5\>\<#6570\> (- n + (\<#53D6\>\<#53EF\>\<#7528\>\<#6700\>\<#5C0F\>\<#9762\>\<#503C\> k)) + k)))) + <|unfolded-io> + \<#627E\>\<#96F6\>\<#65B9\>\<#6CD5\>\<#6570\> + + + <\unfolded-io|Scheme] > + (\<#627E\>\<#96F6\>\<#65B9\>\<#6CD5\>\<#6570\> 50 1) + <|unfolded-io> + + + + <\unfolded-io|Scheme] > + (/ 10 5) + <|unfolded-io> + 2 + + + <\input|Scheme] > + \; + + + + \; + > <\initial> @@ -154,5 +476,20 @@ <\references> <\collection> > + > - \ No newline at end of file + + +<\auxiliary> + <\collection> + <\associate|toc> + |\<#6848\>\<#4F8B\>\<#5206\>\<#6790\>\<#FF1A\>\<#5B9E\>\<#73B0\>\<#6C42\>\<#7EDD\>\<#5BF9\>\<#503C\>\<#7684\>\<#591A\>\<#79CD\>\<#65B9\>\<#5F0F\> + |.>>>>|> + > + + |\<#6848\>\<#4F8B\>\<#5206\>\<#6790\>\<#FF1A\>\<#6C42\>\<#548C\> + |.>>>>|> + > + + + \ No newline at end of file From 84a2ac6180d1765bfb383668dcc873252be3bf49 Mon Sep 17 00:00:00 2001 From: Darcy Shen Date: Wed, 28 Feb 2024 14:02:46 +0800 Subject: [PATCH 3/3] wip --- SICP/slide03.tm | 78 +++++++++---------------------------------------- 1 file changed, 14 insertions(+), 64 deletions(-) diff --git a/SICP/slide03.tm b/SICP/slide03.tm index 6e20201..8203d1f 100644 --- a/SICP/slide03.tm +++ b/SICP/slide03.tm @@ -7,7 +7,7 @@ >>> - + \<#57FA\>\<#7840\>SICP\<#FF1A\>\<#7B2C\>3\<#8BFE\>> <\wide-tabular> @@ -57,7 +57,7 @@ Tree Recursion >>> - |<\hidden> + |<\hidden> \<#4EF6\>\<#8868\>\<#8FBE\>\<#5F0F\>\<#548C\>\<#8C13\>\<#8BCD\>\V\<#77ED\>\<#8DEF\>\<#8FD0\>\<#7B97\>> <\itemize> @@ -349,8 +349,6 @@ \; - - \; |<\hidden> \<#6CBB\>\<#6CD5\>\<#FF1A\>\<#627E\>\<#96F6\>\<#95EE\>\<#9898\>> @@ -393,73 +391,25 @@ f|)>=f|)>+f|)> - |<\shown> - \<#6CBB\>\<#6CD5\>\<#FF1A\>\<#627E\>\<#96F6\>\<#95EE\>\<#9898\>> + |<\hidden> + \<#7ED3\>> - <\equation*> - f|)>=|)>+f|)>>|2>>||1>>||>>>> - + <\itemize> + \<#56DE\>\<#987E\>\<#5E94\>\<#7528\>\<#5E8F\>\<#6C42\>\<#503C\>\<#548C\>\<#6B63\>\<#5219\>\<#5E8F\>\<#6C42\>\<#503C\> - <\session|scheme|default> - <\unfolded-io|Scheme] > - (define (\<#53D6\>\<#53EF\>\<#7528\>\<#6700\>\<#5C0F\>\<#9762\>\<#503C\> - n) + \<#6DF1\>\<#5165\>\<#7406\>\<#89E3\>\<#548C\> - \ \ (cond ((= n 4) 1) + \<#7F16\>\<#7A0B\>\<#4E2D\>\<#6700\>\<#57FA\>\<#7840\>\<#7684\>\<#6982\>\<#5FF5\>\<#4E4B\>\<#4E00\>\<#FF1A\>\<#5FAA\>\<#73AF\> - \ \ \ \ \ \ \ \ ((= n 3) 5) + \<#4F7F\>\<#7528\>\<#9012\>\<#5F52\>\<#5B9E\>\<#73B0\>\<#5FAA\>\<#73AF\>\<#FF0C\>\<#57FA\>\<#4E8E\>\<#5FAA\>\<#73AF\>\<#7406\>\<#89E3\>\<#9012\>\<#5F52\> - \ \ \ \ \ \ \ \ ((= n 2) 10) + \<#5B9E\>\<#6218\>\<#FF1A\>\<#7EBF\>\<#6027\>\<#9012\>\<#5F52\>\<#548C\>\<#6811\>\<#5F62\>\<#9012\>\<#5F52\> - \ \ \ \ \ \ \ \ ((= n 1) 50) + \<#6280\>\<#5DE7\>\<#FF1A\>\<#5C06\>\<#9012\>\<#5F52\>\<#5B9E\>\<#73B0\>\<#6539\>\<#4E3A\>\<#8FED\>\<#4EE3\>\<#5B9E\>\<#73B0\> - \ \ \ \ \ \ \ \ (else 0))) - <|unfolded-io> - \<#53D6\>\<#53EF\>\<#7528\>\<#6700\>\<#5C0F\>\<#9762\>\<#503C\> - - - <\unfolded-io|Scheme] > - (define (\<#627E\>\<#96F6\>\<#65B9\>\<#6CD5\>\<#6570\> n k) - - \ \ (if (or (\ n 2) (\= k 1)) - - \ \ \ \ \ \ (if (and (\= n (\<#53D6\>\<#53EF\>\<#7528\>\<#6700\>\<#5C0F\>\<#9762\>\<#503C\> - k)) (= (% n (\<#53D6\>\<#53EF\>\<#7528\>\<#6700\>\<#5C0F\>\<#9762\>\<#503C\> - k)) 0)) - - \ \ \ \ \ \ \ \ \ \ 1 - - \ \ \ \ \ \ \ \ \ \ 0) - - \ \ \ \ \ \ (+ (\<#627E\>\<#96F6\>\<#65B9\>\<#6CD5\>\<#6570\> n (- k - 1)) (\<#627E\>\<#96F6\>\<#65B9\>\<#6CD5\>\<#6570\> (- n - (\<#53D6\>\<#53EF\>\<#7528\>\<#6700\>\<#5C0F\>\<#9762\>\<#503C\> k)) - k)))) - <|unfolded-io> - \<#627E\>\<#96F6\>\<#65B9\>\<#6CD5\>\<#6570\> - - - <\unfolded-io|Scheme] > - (\<#627E\>\<#96F6\>\<#65B9\>\<#6CD5\>\<#6570\> 50 1) - <|unfolded-io> - - - - <\unfolded-io|Scheme] > - (/ 10 5) - <|unfolded-io> - 2 - - - <\input|Scheme] > - \; - - - - \; - > + \<#62BD\>\<#8C61\>\<#FF1A\>\<#5229\>\<#7528\>\<#9012\>\<#5F52\>\<#89E3\>\<#51B3\>\<#73B0\>\<#5B9E\>\<#4E2D\>\<#7684\>\<#627E\>\<#96F6\>\<#95EE\>\<#9898\> + + > <\initial>