[plt-scheme] Question result is not true or false: (void)

From: Geoffrey S. Knauth (geoff at knauth.org)
Date: Tue Jan 5 04:10:03 EST 2010

On Dec 29, 2009, at 11:04, Matthias Felleisen wrote:

> The very fact that anyone starts with I/O for program design is serious grounds for doubts. Nobody can truly succeed that way. So all the other comments are right on.

If I may jump in with *why* starting with I/O is such a mistake, it's because it's hard to write test cases involving I/O, unless a person's experience of test cases involves the diffs people see in "make test" sometimes found in Makefiles.  Even that would only test the end product.  Which brings us back to HtDP.  HtDP has saved my butt countless times when I changed something small in a seemingly simple routine and immediately broke a low-level function upon which much else depended.  Using HtDP discipline, I always know what every piece of data should look like, why functions exist, what their outputs should be given certain inputs, and when something doesn't work, I find out right away and know exactly where the problem occurred and why.  The more complex the application, the more obvious the benefits, but those benefits are dramatic even for small programs.

Geoff



Posted on the users mailing list.