From e9f886c8908ff527adb4e93f61d6a8903922165f Mon Sep 17 00:00:00 2001 From: Darcy Shen Date: Mon, 26 Feb 2024 14:39:00 +0800 Subject: [PATCH] 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