diff options
Diffstat (limited to 'js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5')
19 files changed, 498 insertions, 0 deletions
diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/fib.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/fib.scm new file mode 100644 index 0000000..6a2d8e6 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/fib.scm @@ -0,0 +1,12 @@ +(define (add-streams s1 s2)(cond((stream-null? s1)s2) + ((stream-null? s2)s1) + (else (cons-stream (+ (stream-car s1) + (stream-car s2)) + (add-streams + (stream-cdr s1) + (stream-cdr s2)))))) + +(define fibs (cons-stream 0 + (cons-stream 1 + (add-streams (stream-cdr fibs) + fibs)))) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html new file mode 100644 index 0000000..ec3d559 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/3.5</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/3.5</h1> + <table> + <tr><th valign="top"><img src="../../../../icons/blank.gif" alt="[ICO]"></th><th><a href="index.html?C=N%3BO=D">Name</a></th><th><a href="index.html?C=M%3BO=A">Last modified</a></th><th><a href="index.html?C=S%3BO=A">Size</a></th><th><a href="index.html?C=D%3BO=A">Description</a></th></tr> + <tr><th colspan="5"><hr></th></tr> +<tr><td valign="top"><img src="../../../../icons/back.gif" alt="[PARENTDIR]"></td><td><a href="../../Lectures">Parent Directory</a> </td><td> </td><td align="right"> - </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="fib.scm">fib.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">337 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/ints-from">ints-from</a> </td><td align="right">2003-04-25 12:52 </td><td align="right"> 76 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime0.scm">prime0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">166 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime1.scm">prime1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">445 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime2.scm">prime2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">640 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="show-stream.scm">show-stream.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">390 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="sieve.scm">sieve.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">268 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/stream-memo.scm">stream-memo.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream-pack.scm">stream-pack.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream0.scm">stream0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">171 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream1.scm">stream1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">462 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream2.scm">stream2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">508 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="streamstate.scm">streamstate.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">2.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/why-streams">why-streams</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">381 </td><td> </td></tr> + <tr><th colspan="5"><hr></th></tr> +</table> +</body></html> diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=D;O=A b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=D;O=A new file mode 100644 index 0000000..3ef51c8 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=D;O=A @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/3.5</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/3.5</h1> + <table> + <tr><th valign="top"><img src="../../../../icons/blank.gif" alt="[ICO]"></th><th><a href="index.html?C=N%3BO=A">Name</a></th><th><a href="index.html?C=M%3BO=A">Last modified</a></th><th><a href="index.html?C=S%3BO=A">Size</a></th><th><a href="index.html?C=D%3BO=D">Description</a></th></tr> + <tr><th colspan="5"><hr></th></tr> +<tr><td valign="top"><img src="../../../../icons/back.gif" alt="[PARENTDIR]"></td><td><a href="../../Lectures">Parent Directory</a> </td><td> </td><td align="right"> - </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="fib.scm">fib.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">337 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/ints-from">ints-from</a> </td><td align="right">2003-04-25 12:52 </td><td align="right"> 76 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime0.scm">prime0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">166 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime1.scm">prime1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">445 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime2.scm">prime2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">640 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="show-stream.scm">show-stream.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">390 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="sieve.scm">sieve.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">268 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/stream-memo.scm">stream-memo.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream-pack.scm">stream-pack.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream0.scm">stream0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">171 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream1.scm">stream1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">462 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream2.scm">stream2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">508 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="streamstate.scm">streamstate.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">2.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/why-streams">why-streams</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">381 </td><td> </td></tr> + <tr><th colspan="5"><hr></th></tr> +</table> +</body></html> diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=D;O=D b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=D;O=D new file mode 100644 index 0000000..5905ef1 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=D;O=D @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/3.5</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/3.5</h1> + <table> + <tr><th valign="top"><img src="../../../../icons/blank.gif" alt="[ICO]"></th><th><a href="index.html?C=N%3BO=A">Name</a></th><th><a href="index.html?C=M%3BO=A">Last modified</a></th><th><a href="index.html?C=S%3BO=A">Size</a></th><th><a href="index.html?C=D%3BO=A">Description</a></th></tr> + <tr><th colspan="5"><hr></th></tr> +<tr><td valign="top"><img src="../../../../icons/back.gif" alt="[PARENTDIR]"></td><td><a href="../../Lectures">Parent Directory</a> </td><td> </td><td align="right"> - </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/why-streams">why-streams</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">381 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="streamstate.scm">streamstate.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">2.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream2.scm">stream2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">508 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream1.scm">stream1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">462 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream0.scm">stream0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">171 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream-pack.scm">stream-pack.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/stream-memo.scm">stream-memo.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="sieve.scm">sieve.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">268 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="show-stream.scm">show-stream.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">390 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime2.scm">prime2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">640 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime1.scm">prime1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">445 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime0.scm">prime0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">166 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/ints-from">ints-from</a> </td><td align="right">2003-04-25 12:52 </td><td align="right"> 76 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="fib.scm">fib.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">337 </td><td> </td></tr> + <tr><th colspan="5"><hr></th></tr> +</table> +</body></html> diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=M;O=A b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=M;O=A new file mode 100644 index 0000000..bd4b52a --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=M;O=A @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/3.5</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/3.5</h1> + <table> + <tr><th valign="top"><img src="../../../../icons/blank.gif" alt="[ICO]"></th><th><a href="index.html?C=N%3BO=A">Name</a></th><th><a href="index.html?C=M%3BO=D">Last modified</a></th><th><a href="index.html?C=S%3BO=A">Size</a></th><th><a href="index.html?C=D%3BO=A">Description</a></th></tr> + <tr><th colspan="5"><hr></th></tr> +<tr><td valign="top"><img src="../../../../icons/back.gif" alt="[PARENTDIR]"></td><td><a href="../../Lectures">Parent Directory</a> </td><td> </td><td align="right"> - </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="fib.scm">fib.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">337 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/ints-from">ints-from</a> </td><td align="right">2003-04-25 12:52 </td><td align="right"> 76 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime0.scm">prime0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">166 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime1.scm">prime1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">445 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime2.scm">prime2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">640 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="show-stream.scm">show-stream.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">390 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="sieve.scm">sieve.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">268 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/stream-memo.scm">stream-memo.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream-pack.scm">stream-pack.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream0.scm">stream0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">171 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream1.scm">stream1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">462 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream2.scm">stream2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">508 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="streamstate.scm">streamstate.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">2.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/why-streams">why-streams</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">381 </td><td> </td></tr> + <tr><th colspan="5"><hr></th></tr> +</table> +</body></html> diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=M;O=D b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=M;O=D new file mode 100644 index 0000000..5905ef1 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=M;O=D @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/3.5</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/3.5</h1> + <table> + <tr><th valign="top"><img src="../../../../icons/blank.gif" alt="[ICO]"></th><th><a href="index.html?C=N%3BO=A">Name</a></th><th><a href="index.html?C=M%3BO=A">Last modified</a></th><th><a href="index.html?C=S%3BO=A">Size</a></th><th><a href="index.html?C=D%3BO=A">Description</a></th></tr> + <tr><th colspan="5"><hr></th></tr> +<tr><td valign="top"><img src="../../../../icons/back.gif" alt="[PARENTDIR]"></td><td><a href="../../Lectures">Parent Directory</a> </td><td> </td><td align="right"> - </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/why-streams">why-streams</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">381 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="streamstate.scm">streamstate.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">2.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream2.scm">stream2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">508 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream1.scm">stream1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">462 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream0.scm">stream0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">171 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream-pack.scm">stream-pack.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/stream-memo.scm">stream-memo.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="sieve.scm">sieve.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">268 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="show-stream.scm">show-stream.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">390 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime2.scm">prime2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">640 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime1.scm">prime1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">445 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime0.scm">prime0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">166 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/ints-from">ints-from</a> </td><td align="right">2003-04-25 12:52 </td><td align="right"> 76 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="fib.scm">fib.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">337 </td><td> </td></tr> + <tr><th colspan="5"><hr></th></tr> +</table> +</body></html> diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=N;O=A b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=N;O=A new file mode 100644 index 0000000..ec3d559 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=N;O=A @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/3.5</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/3.5</h1> + <table> + <tr><th valign="top"><img src="../../../../icons/blank.gif" alt="[ICO]"></th><th><a href="index.html?C=N%3BO=D">Name</a></th><th><a href="index.html?C=M%3BO=A">Last modified</a></th><th><a href="index.html?C=S%3BO=A">Size</a></th><th><a href="index.html?C=D%3BO=A">Description</a></th></tr> + <tr><th colspan="5"><hr></th></tr> +<tr><td valign="top"><img src="../../../../icons/back.gif" alt="[PARENTDIR]"></td><td><a href="../../Lectures">Parent Directory</a> </td><td> </td><td align="right"> - </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="fib.scm">fib.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">337 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/ints-from">ints-from</a> </td><td align="right">2003-04-25 12:52 </td><td align="right"> 76 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime0.scm">prime0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">166 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime1.scm">prime1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">445 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime2.scm">prime2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">640 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="show-stream.scm">show-stream.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">390 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="sieve.scm">sieve.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">268 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/stream-memo.scm">stream-memo.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream-pack.scm">stream-pack.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream0.scm">stream0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">171 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream1.scm">stream1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">462 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream2.scm">stream2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">508 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="streamstate.scm">streamstate.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">2.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/why-streams">why-streams</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">381 </td><td> </td></tr> + <tr><th colspan="5"><hr></th></tr> +</table> +</body></html> diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=N;O=D b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=N;O=D new file mode 100644 index 0000000..5905ef1 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=N;O=D @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/3.5</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/3.5</h1> + <table> + <tr><th valign="top"><img src="../../../../icons/blank.gif" alt="[ICO]"></th><th><a href="index.html?C=N%3BO=A">Name</a></th><th><a href="index.html?C=M%3BO=A">Last modified</a></th><th><a href="index.html?C=S%3BO=A">Size</a></th><th><a href="index.html?C=D%3BO=A">Description</a></th></tr> + <tr><th colspan="5"><hr></th></tr> +<tr><td valign="top"><img src="../../../../icons/back.gif" alt="[PARENTDIR]"></td><td><a href="../../Lectures">Parent Directory</a> </td><td> </td><td align="right"> - </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/why-streams">why-streams</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">381 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="streamstate.scm">streamstate.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">2.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream2.scm">stream2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">508 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream1.scm">stream1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">462 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream0.scm">stream0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">171 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream-pack.scm">stream-pack.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/stream-memo.scm">stream-memo.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="sieve.scm">sieve.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">268 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="show-stream.scm">show-stream.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">390 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime2.scm">prime2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">640 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime1.scm">prime1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">445 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime0.scm">prime0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">166 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/ints-from">ints-from</a> </td><td align="right">2003-04-25 12:52 </td><td align="right"> 76 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="fib.scm">fib.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">337 </td><td> </td></tr> + <tr><th colspan="5"><hr></th></tr> +</table> +</body></html> diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=S;O=A b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=S;O=A new file mode 100644 index 0000000..0f46813 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/index.html?C=S;O=A @@ -0,0 +1,28 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/3.5</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/3.5</h1> + <table> + <tr><th valign="top"><img src="../../../../icons/blank.gif" alt="[ICO]"></th><th><a href="index.html?C=N%3BO=A">Name</a></th><th><a href="index.html?C=M%3BO=A">Last modified</a></th><th><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/?C=S;O=D">Size</a></th><th><a href="index.html?C=D%3BO=A">Description</a></th></tr> + <tr><th colspan="5"><hr></th></tr> +<tr><td valign="top"><img src="../../../../icons/back.gif" alt="[PARENTDIR]"></td><td><a href="../../Lectures">Parent Directory</a> </td><td> </td><td align="right"> - </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/ints-from">ints-from</a> </td><td align="right">2003-04-25 12:52 </td><td align="right"> 76 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime0.scm">prime0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">166 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream0.scm">stream0.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">171 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="sieve.scm">sieve.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">268 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="fib.scm">fib.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">337 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/why-streams">why-streams</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">381 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="show-stream.scm">show-stream.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">390 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime1.scm">prime1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">445 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream1.scm">stream1.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">462 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream2.scm">stream2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">508 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="prime2.scm">prime2.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">640 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/3.5/stream-memo.scm">stream-memo.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="stream-pack.scm">stream-pack.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">1.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="streamstate.scm">streamstate.scm</a> </td><td align="right">2003-04-25 12:52 </td><td align="right">2.2K</td><td> </td></tr> + <tr><th colspan="5"><hr></th></tr> +</table> +</body></html> diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/prime0.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/prime0.scm new file mode 100644 index 0000000..ed84766 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/prime0.scm @@ -0,0 +1,8 @@ + + +(define (prime? n) + (define (iter factor) + (cond ((= factor n) #t) + ((= (remainder n factor) 0) #f) + (else (iter (+ factor 1))))) + (iter 2)) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/prime1.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/prime1.scm new file mode 100644 index 0000000..35f7a70 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/prime1.scm @@ -0,0 +1,22 @@ + + +(define (prime? n) + (null? (filter (lambda (x) (= (remainder n x) 0)) + (range 2 (- n 1))))) + +(define (range from to) + (if (> from to) + '() + (cons from (range (+ from 1) to)))) + + +(define (filter predicate data) + (cond ((null? data) '()) + ((predicate (car data)) + (cons (car data) (filter predicate (cdr data)))) + (else (filter predicate (cdr data))))) + + + + +;; try (filter prime? (range 2 100)) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/prime2.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/prime2.scm new file mode 100644 index 0000000..4df4e92 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/prime2.scm @@ -0,0 +1,22 @@ + + +(define (stream-prime? n) + (stream-null? (stream-filter (lambda (x) (= (remainder n x) 0)) + (stream-range 2 (- n 1))))) + +(define (stream-range from to) + (if (> from to) + the-empty-stream + (cons-stream from (stream-range (+ from 1) to)))) + +(define (stream-filter predicate data) + (cond ((stream-null? data) the-empty-stream) + ((predicate (stream-car data)) + (cons-stream (stream-car data) + (stream-filter predicate (stream-cdr data)))) + (else (stream-filter predicate (stream-cdr data))))) + +;; try (define s (stream-filter stream-prime? (stream-range 2 100))) +;; s +;; (display-stream s) + diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/show-stream.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/show-stream.scm new file mode 100644 index 0000000..e9d42f3 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/show-stream.scm @@ -0,0 +1,15 @@ + +(define (show-stream strm . args) ;2nd arg is how many + (if (null? args) + (ss1 strm 10 10) + (ss1 strm (car args) (car args)))) + +(define ss show-stream) + +(define (ss1 strm this all) + (cond ((null? strm) '()) + ((= this 0) '(...)) + ((and (pair? strm) (procedure? (cdr strm))) + (cons (ss1 (stream-car strm) all all) + (ss1 (stream-cdr strm) (- this 1) all))) + (else strm))) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/sieve.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/sieve.scm new file mode 100644 index 0000000..bff92b3 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/sieve.scm @@ -0,0 +1,10 @@ +(define (divisible? x y) (= (remainder x y) 0)) + +(define (sieve stream) + (cons-stream + (stream-car stream) + (sieve (stream-filter + (lambda (x) (not (divisible? x (stream-car stream)))) + (stream-cdr stream))))) + +(define primes (sieve (stream-cdr integers))) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream-pack.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream-pack.scm new file mode 100644 index 0000000..826b06c --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream-pack.scm @@ -0,0 +1,52 @@ +;; review notes for 4/10/98 +;;can you deadlock on this? + +(parallel-execute (exchange-account a b)(exchange-account a c)) ? + + +what do these do: + +(define a (cons-stream a a)) + +(define a (cons-stream 'a a)) +(show-stream a) +(define a (cons-stream a a)) +(show-stream a) + + +what is the difference between eq? and equal? + +(eq? () '()) + + +(pair? ()) + +;; pack a finite stream with infinite newelements on end + +(define (pack-stream s newelement) + (if (stream-null? s) + (cons-stream newelement(pack-stream s newelement)) + (cons-stream (stream-car s) (pack-stream (stream-cdr s) newelement)))) + +;or (buggy) + +(define (pack-stream s newelement) + (if (stream-null? s) (let ((a (cons-stream newelement a))) a) + (cons-stream (stream-car s) (pack-stream (stream-cdr s) newelement)))) + + +; or (still buggy) + +(define (pack-stream s newelement) + (if (stream-null? s) (let ((a nil)) + (set! a (cons-stream newelement a))) + (cons-stream (stream-car s) (pack-stream (stream-cdr s) newelement)))) +; ok + +(define (pack-stream s newelement) + (if (stream-null? s) (let ((a nil)) + (set! a (cons-stream newelement a)) + a) + (cons-stream (stream-car s) (pack-stream (stream-cdr s) newelement)))) + + diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream0.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream0.scm new file mode 100644 index 0000000..d6f15da --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream0.scm @@ -0,0 +1,6 @@ +(define (perfect? n) + (define (iter i sum) + (cond ((= i n) sum) + ((= 0 (remainder n i)) (iter (1+ i) (+ sum i))) + (else (iter (1+ i) sum)) )) + (= n (iter 1 0)) ) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream1.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream1.scm new file mode 100644 index 0000000..58c7061 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream1.scm @@ -0,0 +1,20 @@ +(define (filter f lis) + (cond ((null? lis) nil) + ((f (car lis)) (cons (car lis) (filter f (cdr lis)))) + (else (filter f (cdr lis))) )) + +(define (accumulate f start lis) + (if (null? lis) + start + (f (car lis) (accumulate f start (cdr lis))) )) + +(define (range a b) + (if (> a b) + nil + (cons a (range (1+ a) b)) )) + +(define (perfect? n) + (= n (accumulate + + 0 + (filter (lambda (x) (= 0 (remainder n x))) + (range 1 (-1+ n)) ) ))) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream2.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream2.scm new file mode 100644 index 0000000..75258b0 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/stream2.scm @@ -0,0 +1,20 @@ +(define (filter f strm) + (cond ((empty-stream? strm) nil) + ((f (head strm)) (cons-stream (head strm) (filter f (tail strm)))) + (else (filter f (tail strm))) )) + +(define (accumulate f start strm) + (if (empty-stream? strm) + start + (f (head strm) (accumulate f start (tail strm))) )) + +(define (range a b) + (if (> a b) + nil + (cons-stream a (range (1+ a) b)) )) + +(define (perfect? n) + (= n (accumulate + + 0 + (filter (lambda (x) (= 0 (remainder n x))) + (range 1 (-1+ n)) ) ))) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/streamstate.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/streamstate.scm new file mode 100644 index 0000000..a514f90 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/3.5/streamstate.scm @@ -0,0 +1,87 @@ +(define (stream-withdraw balance amount-stream) + (cons-stream balance + (stream-withdraw (- balance + (head amount-stream)) + (tail amount-stream)))) + +;; a withdrawal stream + +(define (wd-stream)(cons-stream (prompt)(wd-stream))) + +(define (prompt)(print "new withdrawal -->")(read)) + +(define mywd (wd-stream)) + +;;; insert a few values by (tail(tail (tail mywd))) + +;;; (stream-withdraw 100 mywd) + + +(define (for-each-stream proc stream) + (if (empty-stream? stream) + 'done + (sequence (proc (head stream)) + (for-each-stream proc (tail stream))))) + +;; print a (finite) stream. + +(define (print-stream s) + (for-each-stream print s)) + +(define ps print-stream) + +(define (for-each-stream-count proc stream n) + (if (or (= n 0) (empty-stream? stream)) + 'done + (sequence (proc (head stream)) + (for-each-stream-count proc (tail stream) (+ n -1))))) + +(define (psn s n)(for-each-stream-count print s n)) + +;;;;;;;;;;;;;;;; + +;;; TAYLOR SERIES +;;; (we could use abstraction better here...) +;;; a term in a series looks like (a b) , a list +;;; signifying b*x^a + +;; here is the number 1 = 1*x^0 + + (define unit-term (list 0 1)) ;; could be (make-term 0 1) + +(define (integrate-series series) + (map integrate-term series)) + +;;; to integrate b*x^a with respect to x, produce +;;; (b/(a+1)*x^(a+1) + +(define (integrate-term tt) + (let ((new-order (1+ (car tt)))) ;; could use (order tt) instead of car + (list new-order (/ (cadr tt) new-order)))) ;; make-term; coeff; + +(define exp-series (cons-stream unit-term (integrate-series exp-series))) + +;; (- integrate sin) to get cos (also, cos(0) = 1) + +;; cos x is 1 -x^2/2 + x^4/4! + .. + +;; 1 -0.5 x^2 + 0.04166 x^4+ ... + +(define cos-series (cons-stream unit-term + (neg-st (integrate-series sin-series)))) + + +;; we need to compute the negative of a "taylor series stream" + +(define (neg-st s)(if (empty-stream? s) s + (cons-stream (list (car (head s))(- (cadr (head s)))) + (neg-st (tail s))))) + +;; integrate cos to get sin + +(define sin-series (integrate-series cos-series)) + +;;; sin x = x -x^3/3!+ x^5/5! + ... +;;; x - 0.166 x^3 + 0.0083*x^5 + ... + +;;(psn sin-series 5) |