Re: Literate Programming example
On 11/20/2011 11:18 PM, Daniel Jomphe wrote: On Sunday, November 20, 2011 5:50:31 AM UTC-5, thorwil wrote: I'm following one or the other Free Software project where an incredible amount of discussions happen regarding work-flow and features. So much thought, so many decisions on details, but for the most part, the implementation is all that remains. But the research, concepts and conscious decisions regarding trade-offs could actually outlive any implementation, they are portable and could be argued to be more valuable. You raised my curiosity. Would you mind sharing a link? ;) My prime example would be Ardour (ardour.org). Almost all the action happens on IRC, where the lead developer has many interactions with a few other coders and users, among them professional sound-engineers who provide critical insight into certain scenarios/work-flows and the features of related hard-and software. Starting to be off-topic, so this is as far as I will take it on this list ;) -- Thorsten Wilms thorwil's design for free software: http://thorwil.wordpress.com/ -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
On Sunday, November 20, 2011 6:17:13 AM UTC-5, robermann79 wrote: > > FYI: some time ago the Opensuse project used such a collaborative tool > (http://www.co-ment.com) in order to get a shared mindset of its > goals. > This was the result, see how clicking on higlight words points to > their comments: > https://lite.co-ment.com/text/lNPCgzeGHdV/view/ Interesting. And funny, considering I bought the cochapter.com domain to do something similar. I'm yet to deliver the application that's planned to power that domain. -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
On Sunday, November 20, 2011 5:50:31 AM UTC-5, thorwil wrote: > > I'm following one or the other Free Software project where an incredible > amount of discussions happen regarding work-flow and features. So much > thought, so many decisions on details, but for the most part, the > implementation is all that remains. But the research, concepts and > conscious decisions regarding trade-offs could actually outlive any > implementation, they are portable and could be argued to be more valuable. > You raised my curiosity. Would you mind sharing a link? ;) -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
FYI: some time ago the Opensuse project used such a collaborative tool (http://www.co-ment.com) in order to get a shared mindset of its goals. This was the result, see how clicking on higlight words points to their comments: https://lite.co-ment.com/text/lNPCgzeGHdV/view/ On Sat, Nov 19, 2011 at 10:21 PM, Daniel Jomphe wrote: > With the tools available to us today, there's no reason why we at least > shouldn't have everything needed to make literate programming more seamless, > more natural. For example, while reading your toy example, I found myself > wanting to ask a question or comment on your thoughts a few times. If your > book had been displayed on a dynamic website geared towards literate > programming, I might have been able to click on a paragraph and write my > question/comment right there. And then, after a short conversation there, > you would have integrated the fruits of our conversation directly into the > end result. Thus each new reader would have been an occasion to improve the > book. ...It's nothing surprising since this kind of review system already > exists in some publishers' toolkits. -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
On 11/19/2011 10:21 PM, Daniel Jomphe wrote: With the tools available to us today, there's no reason why we at least shouldn't have everything needed to make literate programming more seamless, more natural. For example, while reading your toy example, I found myself wanting to ask a question or comment on your thoughts a few times. If your book had been displayed on a dynamic website geared towards literate programming, I might have been able to click on a paragraph and write my question/comment right there. And then, after a short conversation there, you would have integrated the fruits of our conversation directly into the end result. Thus each new reader would have been an occasion to improve the book. ...It's nothing surprising since this kind of review system already exists in some publishers' toolkits. Especially with support for discussions and iterations, such infrastructure could be used for design in general. I'm following one or the other Free Software project where an incredible amount of discussions happen regarding work-flow and features. So much thought, so many decisions on details, but for the most part, the implementation is all that remains. But the research, concepts and conscious decisions regarding trade-offs could actually outlive any implementation, they are portable and could be argued to be more valuable. So funny as it might sound, there's a need for literate design! -- Thorsten Wilms thorwil's design for free software: http://thorwil.wordpress.com/ -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
On Saturday, November 19, 2011 2:37:48 PM UTC-5, TimDaly wrote: > > However, as Knuth points out and as I've already experienced, writing > a program in literate form vastly reduces the errors. There are two > causes I can find. > > First, if I have to write an explanation then I have to justify my > poor code hacks. Sometimes I find that I rewrite the code because the > very act of explaining the bad code made me realize that the code is > bad. I find I have to talk about memory allocations so I catch leaks. > I have to talk about argument handling so I end up proving that the > arguments are correct, or I end up checking for possible failures. > > Second, because other people can see the reasoning at the code review, > they can chastise me for failing to explain, or explaining things that > the code does not do, or just plain failing to implement a correct > solution. > With the tools available to us today, there's no reason why we at least shouldn't have everything needed to make literate programming more seamless, more natural. For example, while reading your toy example, I found myself wanting to ask a question or comment on your thoughts a few times. If your book had been displayed on a dynamic website geared towards literate programming, I might have been able to click on a paragraph and write my question/comment right there. And then, after a short conversation there, you would have integrated the fruits of our conversation directly into the end result. Thus each new reader would have been an occasion to improve the book. ...It's nothing surprising since this kind of review system already exists in some publishers' toolkits. Another thing that appeals to me regarding Tangle, is the fact that it may be used to keep things DRY. For example, when we have many arity-overloaded implementations of a function, some of their arguments are repeated, and we need to duplicate their api docs. Tangle could be leveraged to get rid of this duplication. -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
On Sat, 2011-11-19 at 14:35 +0100, Laurent PETIT wrote: > Hello, > > 2011/11/19 TimDaly > On Fri, 2011-11-18 at 20:02 -0800, Daniel Jomphe wrote: > > On Friday, November 18, 2011 7:17:08 AM UTC-5, TimDaly > wrote: > > Many of you asked me to show an example of a > literate > > program and demonstrate the use of the tangle > function. > > > > I usually use Latex for literate work but I've done > > this example using HTML and tags. > > > > I've written a self-referential literate program > that > > explains the details of the tangle function in > literate > > form. You can find the web page at > > > > > http://daly.literatesoftware.com/lithtml/litprog.html > > > > I have read your literate program, and must recognize that I > know how > > tangle works even though I didn't want to really read the > source code. > > I read your prose all the way through. I still haven't read > the source > > code; > > > In fact, that's the whole point. You don't read the equations > in a > calculus textbook either. You read the words. The equations > are icons. > If you understood the text and "spoke" mathematics you could > probably > write the equations. > > In programming we can reach the same level of literacy. > Reading just > the words in the literate version it should be possible to > recreate > the program in your favorite language. Note that you would be > creating > a different program with different design decisions but the > same > functionality. > > > I didn't feel the need to read it. Were I to maintain your > program, > > I'd have more than enough confidence to start hacking the > code right > > now. > > > One thing worth trying would be to code the same program in > Clojure. > > The tangle program is conceptually very simple but there are a > lot > of low level design decisions that I would make differently. > For > example, there are loops in the C program which would go away. > > Would you map read or would you slurp? Mapping a read function > allows > transforming "& lt;" to < at read time. This does not matter > in the C > program because the buffer is mutable but it would matter in > Clojure. > > Would you use the Clojure pattern language to find the > tags? > Would you be able to parse out the string from the id? C > encourages > character-level hacking but Clojure would be much more > powerful. > > > > > > > I think this speaks very positively about literate > programming. What > > remains to be seen is how much (or not) I'm going to > practice it in > > the future. > > > If you do try to rewrite it in Clojure please post the > program. I > would be very interested to see how Clojure's concise syntax > and > semantics get reflected in your design decisions. > > The tangle program in Clojure might turn out to be a single > s-expression of only a few lines. The code density would be a > huge win but a literate version would still have to have the > vitals of the story. Remember that the key test for a literate > program is the "independence test". Someone can read it > without > talking to you, understand how it works, and be able to change > it. > > > > > > > What do you think of marginalia? It's a bit the reverse of > tangle; it > > assembles all those 70's files together into this book you > might want > > to read. Is it sound or not? Have your thoughts changed from > what you > > wrote in [1]? > > > > > > [1] http://goo.gl/cXWzF > > > Literate programming is a mindset, not a tool. You can write a > literate program in anything, including marginalia. > > That said, I have yet to see a Clojure program that lays out a > story > so I can sit and read it. For a real challenge, if you try to > write > tangle in Clojure, try writing the story in marginalia. I'm > sure > Fogus would welcome the feedback. > > > The readability aspect is a real feature. Heck, you could even > give > your programs to a company so th
Re: Literate Programming example
Hello, 2011/11/19 TimDaly > On Fri, 2011-11-18 at 20:02 -0800, Daniel Jomphe wrote: > > On Friday, November 18, 2011 7:17:08 AM UTC-5, TimDaly wrote: > > Many of you asked me to show an example of a literate > > program and demonstrate the use of the tangle function. > > > > I usually use Latex for literate work but I've done > > this example using HTML and tags. > > > > I've written a self-referential literate program that > > explains the details of the tangle function in literate > > form. You can find the web page at > > > > http://daly.literatesoftware.com/lithtml/litprog.html > > > > I have read your literate program, and must recognize that I know how > > tangle works even though I didn't want to really read the source code. > > I read your prose all the way through. I still haven't read the source > > code; > > In fact, that's the whole point. You don't read the equations in a > calculus textbook either. You read the words. The equations are icons. > If you understood the text and "spoke" mathematics you could probably > write the equations. > > In programming we can reach the same level of literacy. Reading just > the words in the literate version it should be possible to recreate > the program in your favorite language. Note that you would be creating > a different program with different design decisions but the same > functionality. > > > I didn't feel the need to read it. Were I to maintain your program, > > I'd have more than enough confidence to start hacking the code right > > now. > > One thing worth trying would be to code the same program in Clojure. > > The tangle program is conceptually very simple but there are a lot > of low level design decisions that I would make differently. For > example, there are loops in the C program which would go away. > > Would you map read or would you slurp? Mapping a read function allows > transforming "& lt;" to < at read time. This does not matter in the C > program because the buffer is mutable but it would matter in Clojure. > > Would you use the Clojure pattern language to find the tags? > Would you be able to parse out the string from the id? C encourages > character-level hacking but Clojure would be much more powerful. > > > > > > > I think this speaks very positively about literate programming. What > > remains to be seen is how much (or not) I'm going to practice it in > > the future. > > If you do try to rewrite it in Clojure please post the program. I > would be very interested to see how Clojure's concise syntax and > semantics get reflected in your design decisions. > > The tangle program in Clojure might turn out to be a single > s-expression of only a few lines. The code density would be a > huge win but a literate version would still have to have the > vitals of the story. Remember that the key test for a literate > program is the "independence test". Someone can read it without > talking to you, understand how it works, and be able to change it. > > > > > > > What do you think of marginalia? It's a bit the reverse of tangle; it > > assembles all those 70's files together into this book you might want > > to read. Is it sound or not? Have your thoughts changed from what you > > wrote in [1]? > > > > > > [1] http://goo.gl/cXWzF > > Literate programming is a mindset, not a tool. You can write a > literate program in anything, including marginalia. > > That said, I have yet to see a Clojure program that lays out a story > so I can sit and read it. For a real challenge, if you try to write > tangle in Clojure, try writing the story in marginalia. I'm sure > Fogus would welcome the feedback. > > > The readability aspect is a real feature. Heck, you could even give > your programs to a company so they could read them BEFORE the job > interview. I would strongly favor hiring someone who could > communicate, who cared about code quality, and who could improve > the company's maintenance headache in the long term. A Literate > Clojure programmer would be a real gotta-hire person. Companies > use many programming languages but all programmers really do need > good communication skills. > > > In the long view, it would be sweet if the Clojure reader knew how > to read a literate program. Just call "(literate-load file chunk)" > and you get the same effect as if you had tangled the program to > a file. > > With literate-load available you would be able to write all of > your Clojure code in a literate style, making Clojure much > easier to understand, maintain, and modify. > I'd be interested in studies proving that programs written in a litterate style are easier to maintain. So far, there has been this metaphore between a "story" and a "program". How far can this metaphor be pushed ? Is it easy to write a book with more than a couple people ? To maintain it ? To modify it ? I can easily understand the appeal: if I were to discover a program for the first time, I would certain
Re: Literate Programming example
On Fri, 2011-11-18 at 20:02 -0800, Daniel Jomphe wrote: > On Friday, November 18, 2011 7:17:08 AM UTC-5, TimDaly wrote: > Many of you asked me to show an example of a literate > program and demonstrate the use of the tangle function. > > I usually use Latex for literate work but I've done > this example using HTML and tags. > > I've written a self-referential literate program that > explains the details of the tangle function in literate > form. You can find the web page at > > http://daly.literatesoftware.com/lithtml/litprog.html > > I have read your literate program, and must recognize that I know how > tangle works even though I didn't want to really read the source code. > I read your prose all the way through. I still haven't read the source > code; In fact, that's the whole point. You don't read the equations in a calculus textbook either. You read the words. The equations are icons. If you understood the text and "spoke" mathematics you could probably write the equations. In programming we can reach the same level of literacy. Reading just the words in the literate version it should be possible to recreate the program in your favorite language. Note that you would be creating a different program with different design decisions but the same functionality. > I didn't feel the need to read it. Were I to maintain your program, > I'd have more than enough confidence to start hacking the code right > now. One thing worth trying would be to code the same program in Clojure. The tangle program is conceptually very simple but there are a lot of low level design decisions that I would make differently. For example, there are loops in the C program which would go away. Would you map read or would you slurp? Mapping a read function allows transforming "& lt;" to < at read time. This does not matter in the C program because the buffer is mutable but it would matter in Clojure. Would you use the Clojure pattern language to find the tags? Would you be able to parse out the string from the id? C encourages character-level hacking but Clojure would be much more powerful. > > > I think this speaks very positively about literate programming. What > remains to be seen is how much (or not) I'm going to practice it in > the future. If you do try to rewrite it in Clojure please post the program. I would be very interested to see how Clojure's concise syntax and semantics get reflected in your design decisions. The tangle program in Clojure might turn out to be a single s-expression of only a few lines. The code density would be a huge win but a literate version would still have to have the vitals of the story. Remember that the key test for a literate program is the "independence test". Someone can read it without talking to you, understand how it works, and be able to change it. > > > What do you think of marginalia? It's a bit the reverse of tangle; it > assembles all those 70's files together into this book you might want > to read. Is it sound or not? Have your thoughts changed from what you > wrote in [1]? > > > [1] http://goo.gl/cXWzF Literate programming is a mindset, not a tool. You can write a literate program in anything, including marginalia. That said, I have yet to see a Clojure program that lays out a story so I can sit and read it. For a real challenge, if you try to write tangle in Clojure, try writing the story in marginalia. I'm sure Fogus would welcome the feedback. The readability aspect is a real feature. Heck, you could even give your programs to a company so they could read them BEFORE the job interview. I would strongly favor hiring someone who could communicate, who cared about code quality, and who could improve the company's maintenance headache in the long term. A Literate Clojure programmer would be a real gotta-hire person. Companies use many programming languages but all programmers really do need good communication skills. In the long view, it would be sweet if the Clojure reader knew how to read a literate program. Just call "(literate-load file chunk)" and you get the same effect as if you had tangled the program to a file. With literate-load available you would be able to write all of your Clojure code in a literate style, making Clojure much easier to understand, maintain, and modify. Tim Daly -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
On Friday, November 18, 2011 7:17:08 AM UTC-5, TimDaly wrote: > > Many of you asked me to show an example of a literate > program and demonstrate the use of the tangle function. > > I usually use Latex for literate work but I've done > this example using HTML and tags. > > I've written a self-referential literate program that > explains the details of the tangle function in literate > form. You can find the web page at > > http://daly.literatesoftware.com/lithtml/litprog.html > I have read your literate program, and must recognize that I know how tangle works even though I didn't want to really read the source code. I read your prose all the way through. I still haven't read the source code; I didn't feel the need to read it. Were I to maintain your program, I'd have more than enough confidence to start hacking the code right now. I think this speaks very positively about literate programming. What remains to be seen is how much (or not) I'm going to practice it in the future. What do you think of marginalia? It's a bit the reverse of tangle; it assembles all those 70's files together into this book you might want to read. Is it sound or not? Have your thoughts changed from what you wrote in [1]? [1] http://goo.gl/cXWzF -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
On Fri, 2011-11-18 at 07:07 -0800, bernardH wrote: > > On Nov 18, 1:17 pm, daly wrote: > > Many of you asked me to show an example of a literate > > program and demonstrate the use of the tangle function. > > Thanks to your perseverance, I am looking into practicing literate > programming. > > However, I decided to settle for emacs org-mode environment with the > literate elisp for the relevant code (abel'part of org-mode) > being here : http://eschulte.github.com/org-babel/org-babel.org.html > I found an example of clojure project (research on genetic > programming) written in literate programming using babel org-mode for > emacs > is hosted here : > http://gitweb.adaptive.cs.unm.edu/asm.git/tree > > I do hope that others find those resources as useful as I found them. I have nothing against org-mode. Indeed, I've been an emacs user since I could spell it. I believe the above examples are not literate programmings. They miss the point completely. They are using emacs org-mode for DOCUMENTATION. Literate programming is NOT documentation. It is a way to communicate from one person to another by starting from ideas and reducing them to practice. I may have missed the point but the above programs are just fancier ways of 1970 style coding using a new format tool. Compare the example I gave at http://axiom-developer.org/axiom-website/litprog.html with the above programs. See if you can spot a qualitative difference. My literate program tries to motivate the need for tangle, to explain why it works in a development context, and then gets down to details of implementation. It is a story. Where does this happen in the org-mode example? Perhaps I missed something but the author does not seem to be concentrating on communicating their ideas to me. Where did I go wrong? What emacs keystrokes get me a copy of the full document to read? Literate programming is about communication, not documentation. The org-mode tool is perfectly fine but be very, very careful not to miss this fundamental point. People should be able to just pick up clojure-core and read it like a novel, from ideas to implementation, and be able to understand it enough to change it. If your code can pass this "independence test" then your code is literate. Tim -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
On Nov 18, 1:17 pm, daly wrote: > Many of you asked me to show an example of a literate > program and demonstrate the use of the tangle function. Thanks to your perseverance, I am looking into practicing literate programming. However, I decided to settle for emacs org-mode environment with the literate elisp for the relevant code (abel'part of org-mode) being here : http://eschulte.github.com/org-babel/org-babel.org.html I found an example of clojure project (research on genetic programming) written in literate programming using babel org-mode for emacs is hosted here : http://gitweb.adaptive.cs.unm.edu/asm.git/tree I do hope that others find those resources as useful as I found them. Best Regards, Bernard -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
it works for me. Las 2011/11/18 daly > I believe I fixed it. > Please try it again and let me know. > > Tim > > On Fri, 2011-11-18 at 07:46 -0500, Chas Emerick wrote: > > On Nov 18, 2011, at 7:17 AM, daly wrote: > > > > > http://daly.literatesoftware.com/lithtml/litprog.html > > > > FYI, this is 404 at the moment. > > > > - Chas > > > > > -- > 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 > Note that posts from new members are moderated - please be patient with > your first post. > 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 > -- László Török Skype: laczoka2000 Twitter: @laczoka -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
I believe I fixed it. Please try it again and let me know. Tim On Fri, 2011-11-18 at 07:46 -0500, Chas Emerick wrote: > On Nov 18, 2011, at 7:17 AM, daly wrote: > > > http://daly.literatesoftware.com/lithtml/litprog.html > > FYI, this is 404 at the moment. > > - Chas > -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
sigh. Try http://daly.axiom-developer.org/lithtml/litprog.html On Fri, 2011-11-18 at 07:46 -0500, Chas Emerick wrote: > On Nov 18, 2011, at 7:17 AM, daly wrote: > > > http://daly.literatesoftware.com/lithtml/litprog.html > > FYI, this is 404 at the moment. > > - Chas > -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Re: Literate Programming example
On Nov 18, 2011, at 7:17 AM, daly wrote: > http://daly.literatesoftware.com/lithtml/litprog.html FYI, this is 404 at the moment. - Chas -- 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 Note that posts from new members are moderated - please be patient with your first post. 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
Literate Programming example
Many of you asked me to show an example of a literate program and demonstrate the use of the tangle function. I usually use Latex for literate work but I've done this example using HTML and tags. I've written a self-referential literate program that explains the details of the tangle function in literate form. You can find the web page at http://daly.literatesoftware.com/lithtml/litprog.html and the source for the tangle function (which is in the web page but) http://daly.literatesoftware.com/lithtml/tangle.c I appreciate the time and attention you all gave me at the Clojure Conj. Hopefully someone will "catch the ah-ha" and write a literate program for next year's Conj. Tim Daly d...@literatesoftware.com -- 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 Note that posts from new members are moderated - please be patient with your first post. 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