On Sat, Mar 17, 2012 at 11:44 AM, Eli Barzilay <span dir="ltr">&lt;<a href="mailto:eli@barzilay.org">eli@barzilay.org</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Note that what Haskell does is *semi*-literate-programming, something<br>
that has little to do with literate programming.  Neil Van Dyke is<br>
working on a tool that is going to be more like<br>
semi-literate-programming.<br>
<br></blockquote><div><br>I understand that literate programming in the Knuth-defined sense allows separation of function bodies into smaller chunks, and allows complete freedom over organization.  In a language like Racket where function definitions can be in any order, you have pretty good flexibility to organize your code top-down or bottom-up, moving things where it makes sense to build an explanation.  So the main thing you lose with a lighterweight tool is the ability to break up functions into smaller pieces.  Racket functions are often so small, that&#39;s not a huge limitation.  So yes, lp is more powerful, but just being able to invert the relative importance of documentation vs code and read the file both ways in a linear top-to-bottom fashion is valuable.<br>
<br>semi-literate-programming seems an apt name.<br><br>I don&#39;t think Javadoc would even qualify for that label though.  In my mind, &quot;semi-literate&quot; at least implies a focus on building a narrative exposition of why the functions work the way they do, not just API documentation.<br>
 <br></div></div>