Things I Hope You Know By Now How Scheme Evaluates Input-- Inside-out evaluation: (sqrt (+ (* 3 3) (* 4 4))) (sqrt (+ 9 16 )) (sqrt 25 ) 5 Words/Sentences: A word is made up of one or more letters. A sentence is made up of one or more words. Scheme representation: single quote means the next word/sentence is taken literally, not as a symbol. Booleans: True/false values. Anything not #f or false is true. Predicates: Functions that return a boolean value (e.g. even? divisible?) Conditionals: "control structures" Do different things depending on whether something is true or false. (really exciting step in being able to write interesting programs). Review the syntax, please. Writing good code: Basically, make it easy to read. Ideally it should read almost like English. Helper procedures are appropriate where they make the overall meaning clearer, eliminate redundant code, or make it easier for you to think about as you write. Good names for variables are pretty easy to come up with, and it's a very good habit to get into. Comments: any line starting with a semicolon ; is a comment. To block comment more than one line, put #| at the beginning of the comment and |# at the end. (that's the pipe sign above the enter key, not an L) Why To Learn To Use a Text Editor I've already told half the class most of this, and I hope it's spread around to almost everyone. I'm trying to spread the word to the last few people who are still trying to work from stk in terminal. All EMACS is is a text editor with special doodads to make life more efficient for you. If you use VIM, feel free. I never have, though, so I can't say much on the point. If you open a file with a .scm extension, all sorts of neat things happen. You can see paren matches highlighted, as well as special scheme syntax. You can also open a blank file and save it as a .scm file. Typing META-s (the diamond key) or ESC-s splits the window and gives you an stk interpreter. Buffers are basically mini-windows into separate files, but it shows them in the same window. You can have more buffers open than the ones emacs shows you; to open a different one, go to the BUFFER drop-down on the top menu. When you save something, be sure you're in the buffer you want to save. The most efficient way to use EMACS: Type all your definitions in the .scm file. As you're working on them, use the FILE->SEND DEFINITION command (shortcut sequence: CTRL-C CTRL-E, or, to bring your cursor there immediately after, CTRL-C META/ESC-E). That way you can test them as you go, but edit them without having to rewrite them. Test cases can go in the .scm file as well. Just type out your test call (square 3) for example, and then with your cursor there, CTRL-C CTRL-E sends it, and you can see the result. This way, if you want to always use the same test cases, you don't have to rewrite them. It's also a good idea to put the expected result of the test case in a comment, like this: ;;test cases following ; should return 5 (hypotenuse 3 4) ; should return 3 (hypotenuse 3 3) Finally: a lot of these things you would have picked up from reading Simply Scheme. Please, please, please read the textbook. It's not painfully boring, and it will help you get a better grasp of the course.