diff options
Diffstat (limited to 'js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1')
15 files changed, 417 insertions, 0 deletions
diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/abstr.levels b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/abstr.levels new file mode 100644 index 0000000..ac4e3ce --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/abstr.levels @@ -0,0 +1,12 @@ +high level of abstraction + application programs + high-level language (Scheme) + low-level language (C) + assembly language + machine language + architecture (registers, memory, arithmetic unit, etc.) + circuit elements (gates) + transistors + solid-state physics + quantum mechanics +low level of abstraction diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/argue.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/argue.scm new file mode 100644 index 0000000..53dafdb --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/argue.scm @@ -0,0 +1,16 @@ +(define (argue s) + (if (empty? s) + '() + (sentence (opposite (first s)) + (argue (bf s))))) + +(define (opposite w) + (cond ((equal? w 'like) 'hate) + ((equal? w 'hate) 'like) + ((equal? w 'wonderful) 'terrible) + ((equal? w 'terrible) 'wonderful) + ((equal? w 'great) 'awful) + ((equal? w 'awful) 'great) + ((equal? w 'terrific) 'yucky) + ((equal? w 'yucky) 'terrific) + (else w) )) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/buzz.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/buzz.scm new file mode 100644 index 0000000..f3d62ad --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/buzz.scm @@ -0,0 +1,4 @@ +(define (buzz n) + (cond ((equal? (remainder n 7) 0) 'buzz) + ((member? 7 n) 'buzz) + (else n))) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html new file mode 100644 index 0000000..6be1532 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/1.1</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/1.1</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="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/1.1/?C=M;O=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="abstr.levels">abstr.levels</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">300 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="argue.scm">argue.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">440 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="buzz.scm">buzz.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 95 </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/1.1/filter.scm">filter.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">624 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="order.scm">order.scm</a> </td><td align="right">2006-09-15 17:12 </td><td align="right">6.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="pigl.scm">pigl.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">203 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural.scm">plural.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">133 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural1.scm">plural1.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 36 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural2.scm">plural2.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 96 </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/1.1/index.html?C=D;O=A b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=D;O=A new file mode 100644 index 0000000..aa048a8 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=D;O=A @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/1.1</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/1.1</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="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/1.1/?C=M;O=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="abstr.levels">abstr.levels</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">300 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="argue.scm">argue.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">440 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="buzz.scm">buzz.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 95 </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/1.1/filter.scm">filter.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">624 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="order.scm">order.scm</a> </td><td align="right">2006-09-15 17:12 </td><td align="right">6.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="pigl.scm">pigl.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">203 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural.scm">plural.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">133 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural1.scm">plural1.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 36 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural2.scm">plural2.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 96 </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/1.1/index.html?C=D;O=D b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=D;O=D new file mode 100644 index 0000000..769b9a1 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=D;O=D @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/1.1</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/1.1</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="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/1.1/?C=M;O=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="plural2.scm">plural2.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 96 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural1.scm">plural1.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 36 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural.scm">plural.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">133 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="pigl.scm">pigl.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">203 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="order.scm">order.scm</a> </td><td align="right">2006-09-15 17:12 </td><td align="right">6.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/1.1/filter.scm">filter.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">624 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="buzz.scm">buzz.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 95 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="argue.scm">argue.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">440 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="abstr.levels">abstr.levels</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">300 </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/1.1/index.html?C=N;O=A b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=N;O=A new file mode 100644 index 0000000..6be1532 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=N;O=A @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/1.1</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/1.1</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="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/1.1/?C=M;O=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="abstr.levels">abstr.levels</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">300 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="argue.scm">argue.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">440 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="buzz.scm">buzz.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 95 </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/1.1/filter.scm">filter.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">624 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="order.scm">order.scm</a> </td><td align="right">2006-09-15 17:12 </td><td align="right">6.2K</td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="pigl.scm">pigl.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">203 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural.scm">plural.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">133 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural1.scm">plural1.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 36 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural2.scm">plural2.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 96 </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/1.1/index.html?C=N;O=D b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=N;O=D new file mode 100644 index 0000000..769b9a1 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=N;O=D @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/1.1</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/1.1</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="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/1.1/?C=M;O=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="plural2.scm">plural2.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 96 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural1.scm">plural1.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 36 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural.scm">plural.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">133 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="pigl.scm">pigl.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">203 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="order.scm">order.scm</a> </td><td align="right">2006-09-15 17:12 </td><td align="right">6.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/1.1/filter.scm">filter.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">624 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="buzz.scm">buzz.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 95 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="argue.scm">argue.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">440 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="abstr.levels">abstr.levels</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">300 </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/1.1/index.html?C=S;O=A b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=S;O=A new file mode 100644 index 0000000..e4b5f81 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=S;O=A @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/1.1</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/1.1</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="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/1.1/?C=M;O=A">Last modified</a></th><th><a href="index.html?C=S%3BO=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="plural1.scm">plural1.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 36 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="buzz.scm">buzz.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 95 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural2.scm">plural2.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 96 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural.scm">plural.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">133 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="pigl.scm">pigl.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">203 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="abstr.levels">abstr.levels</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">300 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="argue.scm">argue.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">440 </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/1.1/filter.scm">filter.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">624 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/text.gif" alt="[TXT]"></td><td><a href="order.scm">order.scm</a> </td><td align="right">2006-09-15 17:12 </td><td align="right">6.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/1.1/index.html?C=S;O=D b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=S;O=D new file mode 100644 index 0000000..a81db95 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/index.html?C=S;O=D @@ -0,0 +1,23 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> +<html> + <head> + <title>Index of /~bh/61a-pages/Lectures/1.1</title> + </head> + <body> +<h1>Index of /~bh/61a-pages/Lectures/1.1</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="https://people.eecs.berkeley.edu/~bh/61a-pages/Lectures/1.1/?C=M;O=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="order.scm">order.scm</a> </td><td align="right">2006-09-15 17:12 </td><td align="right">6.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/1.1/filter.scm">filter.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">624 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="argue.scm">argue.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">440 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="abstr.levels">abstr.levels</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">300 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="pigl.scm">pigl.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">203 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural.scm">plural.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right">133 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural2.scm">plural2.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 96 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="buzz.scm">buzz.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 95 </td><td> </td></tr> +<tr><td valign="top"><img src="../../../../icons/unknown.gif" alt="[ ]"></td><td><a href="plural1.scm">plural1.scm</a> </td><td align="right">2000-05-30 12:38 </td><td align="right"> 36 </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/1.1/order.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/order.scm new file mode 100644 index 0000000..a0208b0 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/order.scm @@ -0,0 +1,199 @@ + +;;; Demonstration program for substitution-model evaluation +;;; complete with normal-order and applicative-order versions. +;;; For use with Section 1.1 of SICP. +;;; +;;; This file defines three special forms: DEF, APPLIC, and NORMAL. +;;; +;;; Example of use: +;;; +;;; (def (f a b) (+ (g a) b)) ; define a function +;;; (def (g x) (* 3 x)) ; another one +;;; (applic (f (+ 2 3) (- 15 6))) ; show applicative-order evaluation +;;; (normal (f (+ 2 3) (- 15 6))) ; show normal-order evaluation + +;;; In the printed results, something like +;;; (* 2 3) ==> 6 +;;; indicates the ultimate invocation of a primitive function. But +;;; (f 5 9) ----> +;;; (+ (g 5) 9) +;;; indicates the substitution of actual arguments into the body of +;;; a function defined with DEF. (Of course, whether actual argument +;;; values or actual argument expressions are substituted depends on +;;; whether you used APPLIC or NORMAL, respectively.) + +;;; Restrictions: +;;; * The operands of a combination must be numbers or combinations. +;;; (I.e., no variables, no non-numeric data.) +;;; * The operator of a combination must be a symbol that names a function. +;;; If the function was not defined by DEF, it is taken as primitive +;;; for purposes of the substitution model. +;;; * DEF only understands the short-form function definition syntax. +;;; (I.e., no lambda, no defining anything but functions.) +;;; * The body of a function defined with DEF must be exactly one expression. + +;;; A neat example: +;;; (def (zero x) (- x x)) +;;; (applic (zero (random 10))) +;;; (normal (zero (random 10))) + + +;; The DEF special form. +;; Binds the symbol to a quoted lambda expression, not a closure, since we're +;; using the substitution model. + +;(define def (procedure->macro +; (lambda (exp env) +; `(begin (define ,(caadr exp) +; '(lambda ,(cdadr exp) ,(caddr exp))) +; (set! def-names (cons ',(caadr exp) def-names)) +; ',(caadr exp))))) + +(define-macro (def form . body) + `(begin + (define ,(car form) '(lambda ,(cdr form) ,@body)) + (set! def-names (cons ',(car form) def-names)) + ',(car form))) + +;;;; (extend-syntax (def) +;;;; [(def (name . args) body) +;;;; (begin (define name '(lambda args body)) +;;;; (set! def-names (cons 'name def-names)) +;;;; 'name)]) + +;; A list of the functions defined using DEF. +;; We look in here to distinguish defined functions from primitives. + +(define def-names '()) + +;; The APPLIC special form. Expands an expression in applicative order. +;; Calls procedure applic1 to do the real work, except for some extra +;; top-level stuff to keep the return value separate from printed text. + +;(define applic (procedure->macro +; (lambda (exp env) +; `(let ((result (applic1 ',(cadr exp) ""))) +; (newline) +; result)))) + +(define-macro (applic . exp) + `(let ((result (applic1 ',(car exp) ""))) + (newline) + result)) + +;;;; (extend-syntax (applic) +;;;; [(applic thingo) +;;;; (let ((result (applic1 'thingo '||))) +;;;; (newline) +;;;; result)]) + +;; The second argument to applic1 is a word of (initially zero) spaces +;; used to indent the printing of the expansion of subexpressions. + +(define (applic1 form spaces) + (if (not (pair? form)) + form + (begin + (newline) + (display spaces) + (display form) + (cond ((and (not (memq (car form) def-names)) + (all-numbers? (cdr form))) + (display " ==> ") + (let ((ans (eval form))) + (display ans) + ans)) + (else + (let ((new-form (subapplic (list (car form)) + (cdr form) + (word spaces " ") ))) + (if (and (memq (car form) def-names) + (not (all-numbers? (cdr form))) ) + (begin (newline) (display spaces) (display new-form)) ) + (cond ((memq (car form) def-names) + (display " ----> ") + (applic1 (subst (eval (car form)) (cdr new-form)) + spaces)) + ((equal? (car form) 'quote) (cadr form)) + (else (applic1 new-form spaces)) ))))))) + +(define (all-numbers? l) + (cond ((null? l) #t) + ((not (or (number? (car l)) (boolean? (car l)))) #f) + (else (all-numbers? (cdr l))) )) + +;; subapplic maps applic1 over the operands, left-to-right. + +(define (subapplic done todo spaces) + (if (null? todo) + (reverse done) + (let ((result (applic1 (car todo) spaces))) + (subapplic (cons result done) (cdr todo) spaces) ))) + +;; subst takes a lambda expression and an actual argument list, and +;; returns the body with substitutions of args for formal parameters. + +(define (subst proc args) + (subst-in-body (caddr proc) (cadr proc) args)) + +(define (subst-in-body form params args) + (cond ((null? form) '()) + ((not (pair? form)) (lookup form params args)) + (else (cons (subst-in-body (car form) params args) + (subst-in-body (cdr form) params args) )))) + +(define (lookup form params args) + (cond ((null? params) form) + ((eq? form (car params)) (car args)) + (else (lookup form (cdr params) (cdr args))) )) + +;; The NORMAL special form. Everything below here is analogous to the +;; corresponding piece of APPLIC, but the logic of normal1 is different. + +;(define normal (procedure->macro +; (lambda (exp env) +; `(let ((result (normal1 ',(cadr exp) ""))) +; (newline) +; result)))) + +(define-macro (normal . exp) + `(let ((result (normal1 ',(car exp) ""))) + (newline) + result)) + +;;;; (extend-syntax (normal) +;;;; [(normal thingo) +;;;; (let ((result (normal1 'thingo ""))) +;;;; (newline) +;;;; result)]) + +(define (normal1 form spaces) + (if (not (pair? form)) + form + (begin + (newline) + (display spaces) + (display form) + (cond ((and (not (memq (car form) def-names)) + (all-numbers? (cdr form))) + (display " ==> ") + (let ((ans (eval form))) + (display ans) + ans)) + ((memq (car form) def-names) + (display " ----> ") + (normal1 (subst (eval (car form)) (cdr form)) + spaces)) + ((equal? (car form) 'quote) (cadr form)) + (else + (let ((new-form (subnormal (list (car form)) + (cdr form) + (word spaces " ") ))) + (normal1 new-form spaces) )))))) + +(define (subnormal done todo spaces) + (if (null? todo) + (reverse done) + (let ((result (normal1 (car todo) spaces))) + (subnormal (cons result done) (cdr todo) spaces) ))) + diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/pigl.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/pigl.scm new file mode 100644 index 0000000..7957fc8 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/pigl.scm @@ -0,0 +1,10 @@ +(define (pigl wd) + (if (pl-done? wd) + (word wd 'ay) + (pigl (word (bf wd) (first wd))))) + +(define (pl-done? wd) + (vowel? (first wd))) + +(define (vowel? letter) + (member? letter '(a e i o u))) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/plural.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/plural.scm new file mode 100644 index 0000000..0538d4a --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/plural.scm @@ -0,0 +1,8 @@ +(define (plural wd) + (word wd 's)) + +(define (plural wd) + (if (equal? (last wd) 'y) + (word (bl wd) 'ies) + (word wd 's))) + diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/plural1.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/plural1.scm new file mode 100644 index 0000000..982f79f --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/plural1.scm @@ -0,0 +1,2 @@ +(define (plural wd) + (word wd 's)) diff --git a/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/plural2.scm b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/plural2.scm new file mode 100644 index 0000000..3c5ddd3 --- /dev/null +++ b/js/games/nluqo.github.io/~bh/61a-pages/Lectures/1.1/plural2.scm @@ -0,0 +1,5 @@ +(define (plural wd) + (if (equal? (last wd) 'y) + (word (bl wd) 'ies) + (word wd 's))) + |