On Fri, Jan 2, 2009 at 5:29 PM, lpetit <laurent.pe...@gmail.com> wrote: > > Yes, what you did should certainly be called "Intentional > programming" (or "Intention revealing programming") instead of > "literate programming".
I was considering referring to "intentional" rather than "literate" until I saw this in the Wikipedia description of "intentional programming". 'Key to the benefits of IP is that source code is not stored in text files, but in a binary file that bears a resemblance to XML." > This style of programming is for example encouraged by the book "Clean > Code" of Robert C. Martin. > > I like this style of programming, I too think it is clear, and makes a > good use of the compiler that prevents any "comment" (considering the > function names are the old "comments) from being not up to date ! :-) > > The difficulty, as always, is in finding the "right balance" ! Thanks for the feedback! > On Jan 2, 11:51 pm, "Mark Volkmann" <r.mark.volkm...@gmail.com> wrote: >> On Fri, Jan 2, 2009 at 4:38 PM, Randall R Schulz <rsch...@sonic.net> wrote: >> >> >> >> > On Friday 02 January 2009 14:23, Christian Vest Hansen wrote: >> >> What is it that makes this code "literate"? >> >> > I don't know whether or not you're familiar with the concept of Literate >> > Programming. If you are, then you can judge for yourself whether that >> > code qualifies as literate. If not, check out some of these references: >> >> > - <http://www-cs-faculty.stanford.edu/~knuth/lp.html> >> > - <http://en.wikipedia.org/wiki/Literate_programming> >> > - <http://www.literateprogramming.com/> >> > - <http://www.literateprogramming.com/knuthweb.pdf> >> > - <http://vasc.ri.cmu.edu/old_help/Programming/Literate/literate.html> >> >> > Many more are out there. >> >> Thanks Randall! Clearly what I'm doing doesn't fit the definition of >> literate programming. Maybe I can claim that it's "literate style" >> based on this part of the definition: >> >> "The main idea is to treat a program as a piece of literature, >> addressed to human beings rather than to a computer." >> >> What I'm trying to do is break the code up into a number of helper >> functions so the the functions that use them are easier to read. For >> example, here's a snippet of my code (including a questionable use of >> def that will be changed soon): >> >> (if (snake :alive) >> (if (adjacent-or-same-cell? (snake-head) (apple :cell)) >> (do >> (def apple (make-apple)) >> (move-snake true) >> (if (= (snake-length) *length-to-win*) >> (new-game "You win!"))) >> (move-snake false)) >> (new-game "You killed the snake!")) >> >> I should probably change the arguments to move-snake to be more >> meaningful. You get the idea though. What I'm trying to avoid is >> deeply nested function definitions with lots of long argument lists >> and anonymous functions. >> >> -- >> R. Mark Volkmann >> Object Computing, Inc. > > > -- R. Mark Volkmann Object Computing, Inc. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---