# [Python-ideas] Literate python?

Wed Mar 9 09:06:31 CET 2011

On 9 mars 2011, at 03:01, Terry Reedy <tjreedy at udel.edu> wrote:
> On 3/8/2011 5:02 PM, Mike Meyer wrote:
>> Wild idea, swiped directly from haskell/ghc:
>>
>> How about making the python interpreter just a little bit smarter,
>
> Though not exactly well known, expression statements that consist of a literal (number or string) are ignored -- except for string literals in docstring position (and then, they are attached as attributes, rather than being in the code object.
>
> def f():
>    'doc' # to .__doc__
>    1 # ignored
>    (1,2,3) # will not be ignored, even though constand and unused
>    'same as comment'
>    '''
>    multiline
>    comment
>    '''
>
> from dis import dis
> dis(f)
> >>>
>  4           0 LOAD_CONST               5 ((1, 2, 3))
>              3 POP_TOP
>
> 10           4 LOAD_CONST               4 (None)
>              7 RETURN_VALUE
>
>> If the first non-white-space character after the shebang line (if
>> present) is a backslash, then the compiler ignores lines until it sees
>> a line consisting of \begin{code} (which could be the first line),
>> then compiles lines until it sees a line consisting of \end{code},
>> after which it switches back to searching for \begin{code}.
>
> So this appears unnecessary. Just use quotes.
>
> The main problems is that program editors are generally not smart enough to do auto text wrapping within multiline strings.
>
> --
> Terry Jan Reedy
>
That's a far cry from lhs though (to say nothing of lit prog). Abusing doctests would be much closer to literate haskell (just about identical if you find a terse way to ignore outputs), if still a long way from knuth's literate programming.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20110309/752e3753/attachment.html>