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
-~----------~----~----~----~------~----~------~--~---

Reply via email to