[erlang-questions] Speaking of comments
Ulf Wiger
ulf.wiger@REDACTED
Mon Dec 13 17:20:06 CET 2010
On 13 Dec 2010, at 16:32, Masklinn wrote:
> Knuth's own WEB (and CWEB) is extremely complex (out-of-order with macro expansions and hypertext references) and rather unlike usual program writing, a simpler literate idea can be found in Literate Haskell (lhs) where lines of code are prefixed (with `> `) and everything else is comment, yielding rather interesting executable documents.
>
> Python also has something similar (though extremely reduced in scope) in its "doctests": code lines are prefixed with 4 spaces and sequentially executed, everything else is non-executable text. Doctests can be used either in docstrings (documentary comments, providing executable examples in the APIDoc) or as free-standing documents (documentation, papers, etc…).
http://github.com/uwiger/erl2latex was inspired by a script John Hughes
used to convert erlang source to PDF via LaTEX.
Some form of documentation, eating my own dog food, can be found in:
https://github.com/uwiger/erl2latex/raw/master/doc/erl2latex.pdf
It got a bit more complex than I had originally intended, since I wanted it
to do a fair job on legacy code. This introduced all sorts of escaping issues.
It was really interesting to work with this, since I noticed that it changes the
way you look at your code - the code really becomes (part of) the documentation.
I'm not going to claim that the above document illustrates that. I quit working
on the code at some point, as I got distracted by other things. But I remember
the feeling, and I've been missing it since then.
If I may quote Joe, he wrote this after trying it:
"I like it *very much* It's strange, I've tried edoc (didn't like it - the output
is ugly) - I wrote my own literate programming system (never used it much -
the code is weirdly ordered)
Used a full book markup system (for the prag book) - overkill for module
documentation.
Somehow erl2latex strikes the right balance between effort and result -
small effort nice result. (edoc = big effort, no benefit) (book production
system, big effort, big benefit) …
...
Actually I like this so much I think I'll be using it a lot …"
I don't know if he actually did, but it was a nice thing to say. :)
BR,
Ulf W
Ulf Wiger, CTO, Erlang Solutions, Ltd.
http://erlang-solutions.com
More information about the erlang-questions
mailing list