=======================[ Submission Instructions ]======================= Please follow these instructions when submitting your midterm solutions. Doing so will let me load your code and test it. Essentially, I will treat your code as a software package that plugs into my automated testing scripts. Think of it this way: you aren't submitting a document, you are submitting a software module. As in any modern build system, various testing scripts must run successfully before you may check in. 0. Include all files named below into an archive called midterm-XXXX.zip, where XXXX are the last 4 symbols of your Dartmouth ID. Create this file using the following command or equivalent: zip midterm-XXXX.zip midterm-XXXX.lisp midterm-XXXX.rb MANIFEST-XXXX ... Suppose my ID ends in 0xyz. Then my file will be called midterm-0xyz.zip, my command to create it would be: zip midterm-0xyz.zip midterm-0xyz.lisp midterm-0xyz.rb MANIFEST-0xyz ... 1. Include explanations with your code, but only as comments. Check that your submission loads and runs as LISP or Ruby files, with LOAD or load, respectively. 2. Gather all your LISP functions in a file called midterm-XXXX.lisp, where XXXX are the last 4 symbols of your Dartmouth ID. Gather all your Ruby functions (if any) in a file called midterm-XXXX.rb . Put your name in comments at the head of each file. Suppose my ID ends in 0xyz. Then my files will be called midterm-0xyz.lisp and midterm-0xyz.rb 3. Include a MANIFEST-XXXX plain text ASCII file, specifying which problems were done in each of the above files. Use the following syntax (assuming the above ID and problems 1, 2, 3, and 5 done in Lisp, problem 4 is Ruby): midterm-0xyz.lisp: P1 P2 P3 P5 midterm-0xyz.rb: P4 4. Have the functions in your solutions named as follows. In Ruby, use _ instead of - in function names. P1: list-to-dot: list -> string (the string holds the DOT description of the list) OR list-to-dot-file: string , filename -> int status (prints the DOT to the file, returns 0 is successful) P2: simplify: sexp -> sexp You may also add: simplify-string: sexp -> string (string represents the formula in ordinary algebraic notation) P3: yodify: sexp -> sexp (both sexps represent grammatical parses) You may also add: yodify-string: sexp -> string (the string represents the resulting "yodified" English sentence; you may ignore case and punctuation) P4: telephone: number -> number P5: runme (no arguments) The function runme should be loadable with Emacs' LOAD-FILE and should load mystery.elc and cause "Secret found" to be printed. 5. If you have any tests that you would like to submit along with your code, make them runnable functions named p1-test p2-test p3-test p4-test and have their data, if any, reside in files named p1-XXXX.tests p2-XXXX.tests p3-XXXX.tests p4-XXXX.tests that are accessed by these functions. If you submitted by Tuesday, you do not need to resubmit. I realize that your solutions may need some adjustments to these rules, but I will ask you to take the time to do this; this will allow me to automate the testing of your solutions. Thank you!