[Exercises 4,5,6,7 were originally posted together on 4 Nov 91] Date: Mon 4 Nov 91 16:42:44-EST From: Michael Downes Subject: Around the bend #2 To: info-tex@shsu.edu The statement of purpose in `Around the bend' #1 said something about finding the `best solution', but failed to define what `best' should mean when comparing pieces of TeX code. I'll start by throwing out a few ideas. Simplicity. A good solution gets hold of the essential idea of the problem and attacks it directly, rather than beating around the bush and resorting to separate clauses to handle troublesome subcases. Economy. if two solutions compare equal in other respects, then the better solution is the one that uses less of TeX's resources (main memory, hash table, string pool, and so forth). Therefore I (immodestly) say that my solution to Exercise 1 was ever so slightly better than the other two given, because it avoided introducing any auxiliary macros that were not included in the original statement of the problem. Robustness. If a solution only works under limited friendly circumstances, and otherwise blows up with an error message, that's not good. My solution to Exercise 2 was flawed in this respect, since D.A. found a test case that caused it to go wrong. *********************************************************************** *** Exercise 4 (essay): What should `best' mean when comparing solutions to an `Around the bend' exercise? What qualities of a good solution are most important? Why? How can they be objectively measured? (Or can they?) On the negative side, what qualities indicate an inferior solution? *********************************************************************** [Exercise 5 moved to exercise.005] [Exercise 6 moved to exercise.006] [Exercise 7 moved to exercise.007] Send answers to: Michael Downes mjd@math.ams.com (Internet) A summary will be posted Tuesday, December 4, 1991. However, because of the difficulty of E7, I will probably procrastinate on posting the solutions for that exercise until the first or second week of December. Table of special characters, to verify accurate transmission: ASCII 33: ! exclamation point ASCII 60: < left elbow ASCII 34: " double quote ASCII 61: = equals sign ASCII 35: # number/pound sign ASCII 62: > right elbow ASCII 36: $ dollar sign ASCII 63: ? question mark ASCII 37: % percent sign ASCII 64: @ at sign ASCII 38: & ampersand ASCII 91: [ left square bracket ASCII 39: ' right quote/apostrophe ASCII 92: \ backslash ASCII 40: ( left parenthesis ASCII 93: ] right square bracket ASCII 41: ) right parenthesis ASCII 94: ^ circumflex/hat/caret ASCII 42: * star/asterisk ASCII 95: _ underscore ASCII 45: - hyphen ASCII 96: ` left quote ASCII 47: / slash ASCII 123: { left curly brace ASCII 58: : colon ASCII 124: | vert bar ASCII 59: ; semicolon ASCII 125: } right curly brace ASCII 126: ~ tilde