##// END OF EJS Templates
py3: fix module imports in test-highlight.t...
Matt Harbison -
r40406:3b84ef90 default
parent child Browse files
Show More
@@ -26,7 +26,7 b' create random Python file to exercise Py'
26 26 > where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0]
27 27 > """
28 28 >
29 > from itertools import dropwhile, ifilter, islice, count, chain
29 > import itertools
30 30 >
31 31 > def primes():
32 32 > """Generate all primes."""
@@ -35,12 +35,13 b' create random Python file to exercise Py'
35 35 > # It is important to yield *here* in order to stop the
36 36 > # infinite recursion.
37 37 > yield p
38 > ns = ifilter(lambda n: n % p != 0, ns)
38 > ns = itertools.ifilter(lambda n: n % p != 0, ns)
39 39 > for n in sieve(ns):
40 40 > yield n
41 41 >
42 > odds = ifilter(lambda i: i % 2 == 1, count())
43 > return chain([2], sieve(dropwhile(lambda n: n < 3, odds)))
42 > odds = itertools.ifilter(lambda i: i % 2 == 1, itertools.count())
43 > dropwhile = itertools.dropwhile
44 > return itertools.chain([2], sieve(dropwhile(lambda n: n < 3, odds)))
44 45 >
45 46 > if __name__ == "__main__":
46 47 > import sys
@@ -49,7 +50,7 b' create random Python file to exercise Py'
49 50 > except (ValueError, IndexError):
50 51 > n = 10
51 52 > p = primes()
52 > print("The first %d primes: %s" % (n, list(islice(p, n))))
53 > print("The first %d primes: %s" % (n, list(itertools.islice(p, n))))
53 54 > EOF
54 55 $ echo >> primes.py # to test html markup with an empty line just before EOF
55 56 $ hg ci -Ama
@@ -74,7 +75,7 b' hgweb filerevision, html'
74 75 <script type="text/javascript" src="/static/mercurial.js"></script>
75 76
76 77 <link rel="stylesheet" href="/highlightcss" type="text/css" />
77 <title>test: f4fca47b67e6 primes.py</title>
78 <title>test: 687f2d169546 primes.py</title>
78 79 </head>
79 80 <body>
80 81
@@ -112,7 +113,7 b' hgweb filerevision, html'
112 113 <div class="main">
113 114 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
114 115 <h3>
115 view primes.py @ 0:<a href="/rev/f4fca47b67e6">f4fca47b67e6</a>
116 view primes.py @ 0:<a href="/rev/687f2d169546">687f2d169546</a>
116 117 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span>
117 118 </h3>
118 119
@@ -159,7 +160,7 b' hgweb filerevision, html'
159 160 <span id="l4"><span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></span><a href="#l4"></a>
160 161 <span id="l5"><span class="sd">&quot;&quot;&quot;</span></span><a href="#l5"></a>
161 162 <span id="l6"></span><a href="#l6"></a>
162 <span id="l7"><span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></span><a href="#l7"></a>
163 <span id="l7"><span class="kn">import</span> <span class="nn">itertools</span></span><a href="#l7"></a>
163 164 <span id="l8"></span><a href="#l8"></a>
164 165 <span id="l9"><span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></span><a href="#l9"></a>
165 166 <span id="l10"> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></span><a href="#l10"></a>
@@ -168,22 +169,23 b' hgweb filerevision, html'
168 169 <span id="l13"> <span class="c"># It is important to yield *here* in order to stop the</span></span><a href="#l13"></a>
169 170 <span id="l14"> <span class="c"># infinite recursion.</span></span><a href="#l14"></a>
170 171 <span id="l15"> <span class="kn">yield</span> <span class="n">p</span></span><a href="#l15"></a>
171 <span id="l16"> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></span><a href="#l16"></a>
172 <span id="l16"> <span class="n">ns</span> <span class="o">=</span> <span class="n">itertools</span><span class="o">.</span><span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></span><a href="#l16"></a>
172 173 <span id="l17"> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></span><a href="#l17"></a>
173 174 <span id="l18"> <span class="kn">yield</span> <span class="n">n</span></span><a href="#l18"></a>
174 175 <span id="l19"></span><a href="#l19"></a>
175 <span id="l20"> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></span><a href="#l20"></a>
176 <span id="l21"> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></span><a href="#l21"></a>
177 <span id="l22"></span><a href="#l22"></a>
178 <span id="l23"><span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></span><a href="#l23"></a>
179 <span id="l24"> <span class="kn">import</span> <span class="nn">sys</span></span><a href="#l24"></a>
180 <span id="l25"> <span class="kn">try</span><span class="p">:</span></span><a href="#l25"></a>
181 <span id="l26"> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></span><a href="#l26"></a>
182 <span id="l27"> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></span><a href="#l27"></a>
183 <span id="l28"> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></span><a href="#l28"></a>
184 <span id="l29"> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></span><a href="#l29"></a>
185 <span id="l30"> <span class="kn">print</span><span class="p">(</span><span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">))))</span></span><a href="#l30"></a>
186 <span id="l31"></span><a href="#l31"></a>
176 <span id="l20"> <span class="n">odds</span> <span class="o">=</span> <span class="n">itertools</span><span class="o">.</span><span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">itertools</span><span class="o">.</span><span class="n">count</span><span class="p">())</span></span><a href="#l20"></a>
177 <span id="l21"> <span class="n">dropwhile</span> <span class="o">=</span> <span class="n">itertools</span><span class="o">.</span><span class="n">dropwhile</span></span><a href="#l21"></a>
178 <span id="l22"> <span class="kn">return</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></span><a href="#l22"></a>
179 <span id="l23"></span><a href="#l23"></a>
180 <span id="l24"><span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></span><a href="#l24"></a>
181 <span id="l25"> <span class="kn">import</span> <span class="nn">sys</span></span><a href="#l25"></a>
182 <span id="l26"> <span class="kn">try</span><span class="p">:</span></span><a href="#l26"></a>
183 <span id="l27"> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></span><a href="#l27"></a>
184 <span id="l28"> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></span><a href="#l28"></a>
185 <span id="l29"> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></span><a href="#l29"></a>
186 <span id="l30"> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></span><a href="#l30"></a>
187 <span id="l31"> <span class="kn">print</span><span class="p">(</span><span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">))))</span></span><a href="#l31"></a>
188 <span id="l32"></span><a href="#l32"></a>
187 189 </pre>
188 190 </div>
189 191
@@ -251,7 +253,7 b' hgweb fileannotate, html'
251 253 <div class="main">
252 254 <h2 class="breadcrumb"><a href="/">Mercurial</a> </h2>
253 255 <h3>
254 annotate primes.py @ 0:<a href="/rev/f4fca47b67e6">f4fca47b67e6</a>
256 annotate primes.py @ 0:<a href="/rev/687f2d169546">687f2d169546</a>
255 257 <span class="phase">draft</span> <span class="branchhead">default</span> <span class="tag">tip</span>
256 258 </h3>
257 259
@@ -318,19 +320,19 b' hgweb fileannotate, html'
318 320
319 321 <tr id="l1" class="thisrev">
320 322 <td class="annotate parity0">
321 <a href="/annotate/f4fca47b67e6/primes.py#l1">
323 <a href="/annotate/687f2d169546/primes.py#l1">
322 324 0
323 325 </a>
324 326 <div class="annotate-info">
325 327 <div>
326 <a href="/annotate/f4fca47b67e6/primes.py#l1">
327 f4fca47b67e6</a>
328 <a href="/annotate/687f2d169546/primes.py#l1">
329 687f2d169546</a>
328 330 a
329 331 </div>
330 332 <div><em>&#116;&#101;&#115;&#116;</em></div>
331 333 <div>parents: </div>
332 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
333 <a href="/rev/f4fca47b67e6">changeset</a>
334 <a href="/diff/687f2d169546/primes.py">diff</a>
335 <a href="/rev/687f2d169546">changeset</a>
334 336 </div>
335 337 </td>
336 338 <td class="source followlines-btn-parent"><a href="#l1"> 1</a> <span class="sd">&quot;&quot;&quot;Fun with generators. Corresponding Haskell implementation:</span></td>
@@ -340,14 +342,14 b' hgweb fileannotate, html'
340 342
341 343 <div class="annotate-info">
342 344 <div>
343 <a href="/annotate/f4fca47b67e6/primes.py#l2">
344 f4fca47b67e6</a>
345 <a href="/annotate/687f2d169546/primes.py#l2">
346 687f2d169546</a>
345 347 a
346 348 </div>
347 349 <div><em>&#116;&#101;&#115;&#116;</em></div>
348 350 <div>parents: </div>
349 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
350 <a href="/rev/f4fca47b67e6">changeset</a>
351 <a href="/diff/687f2d169546/primes.py">diff</a>
352 <a href="/rev/687f2d169546">changeset</a>
351 353 </div>
352 354 </td>
353 355 <td class="source followlines-btn-parent"><a href="#l2"> 2</a> </td>
@@ -357,14 +359,14 b' hgweb fileannotate, html'
357 359
358 360 <div class="annotate-info">
359 361 <div>
360 <a href="/annotate/f4fca47b67e6/primes.py#l3">
361 f4fca47b67e6</a>
362 <a href="/annotate/687f2d169546/primes.py#l3">
363 687f2d169546</a>
362 364 a
363 365 </div>
364 366 <div><em>&#116;&#101;&#115;&#116;</em></div>
365 367 <div>parents: </div>
366 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
367 <a href="/rev/f4fca47b67e6">changeset</a>
368 <a href="/diff/687f2d169546/primes.py">diff</a>
369 <a href="/rev/687f2d169546">changeset</a>
368 370 </div>
369 371 </td>
370 372 <td class="source followlines-btn-parent"><a href="#l3"> 3</a> <span class="sd">primes = 2 : sieve [3, 5..]</span></td>
@@ -374,14 +376,14 b' hgweb fileannotate, html'
374 376
375 377 <div class="annotate-info">
376 378 <div>
377 <a href="/annotate/f4fca47b67e6/primes.py#l4">
378 f4fca47b67e6</a>
379 <a href="/annotate/687f2d169546/primes.py#l4">
380 687f2d169546</a>
379 381 a
380 382 </div>
381 383 <div><em>&#116;&#101;&#115;&#116;</em></div>
382 384 <div>parents: </div>
383 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
384 <a href="/rev/f4fca47b67e6">changeset</a>
385 <a href="/diff/687f2d169546/primes.py">diff</a>
386 <a href="/rev/687f2d169546">changeset</a>
385 387 </div>
386 388 </td>
387 389 <td class="source followlines-btn-parent"><a href="#l4"> 4</a> <span class="sd"> where sieve (p:ns) = p : sieve [n | n &lt;- ns, mod n p /= 0]</span></td>
@@ -391,14 +393,14 b' hgweb fileannotate, html'
391 393
392 394 <div class="annotate-info">
393 395 <div>
394 <a href="/annotate/f4fca47b67e6/primes.py#l5">
395 f4fca47b67e6</a>
396 <a href="/annotate/687f2d169546/primes.py#l5">
397 687f2d169546</a>
396 398 a
397 399 </div>
398 400 <div><em>&#116;&#101;&#115;&#116;</em></div>
399 401 <div>parents: </div>
400 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
401 <a href="/rev/f4fca47b67e6">changeset</a>
402 <a href="/diff/687f2d169546/primes.py">diff</a>
403 <a href="/rev/687f2d169546">changeset</a>
402 404 </div>
403 405 </td>
404 406 <td class="source followlines-btn-parent"><a href="#l5"> 5</a> <span class="sd">&quot;&quot;&quot;</span></td>
@@ -408,14 +410,14 b' hgweb fileannotate, html'
408 410
409 411 <div class="annotate-info">
410 412 <div>
411 <a href="/annotate/f4fca47b67e6/primes.py#l6">
412 f4fca47b67e6</a>
413 <a href="/annotate/687f2d169546/primes.py#l6">
414 687f2d169546</a>
413 415 a
414 416 </div>
415 417 <div><em>&#116;&#101;&#115;&#116;</em></div>
416 418 <div>parents: </div>
417 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
418 <a href="/rev/f4fca47b67e6">changeset</a>
419 <a href="/diff/687f2d169546/primes.py">diff</a>
420 <a href="/rev/687f2d169546">changeset</a>
419 421 </div>
420 422 </td>
421 423 <td class="source followlines-btn-parent"><a href="#l6"> 6</a> </td>
@@ -425,31 +427,31 b' hgweb fileannotate, html'
425 427
426 428 <div class="annotate-info">
427 429 <div>
428 <a href="/annotate/f4fca47b67e6/primes.py#l7">
429 f4fca47b67e6</a>
430 <a href="/annotate/687f2d169546/primes.py#l7">
431 687f2d169546</a>
430 432 a
431 433 </div>
432 434 <div><em>&#116;&#101;&#115;&#116;</em></div>
433 435 <div>parents: </div>
434 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
435 <a href="/rev/f4fca47b67e6">changeset</a>
436 <a href="/diff/687f2d169546/primes.py">diff</a>
437 <a href="/rev/687f2d169546">changeset</a>
436 438 </div>
437 439 </td>
438 <td class="source followlines-btn-parent"><a href="#l7"> 7</a> <span class="kn">from</span> <span class="nn">itertools</span> <span class="kn">import</span> <span class="n">dropwhile</span><span class="p">,</span> <span class="n">ifilter</span><span class="p">,</span> <span class="n">islice</span><span class="p">,</span> <span class="n">count</span><span class="p">,</span> <span class="n">chain</span></td>
440 <td class="source followlines-btn-parent"><a href="#l7"> 7</a> <span class="kn">import</span> <span class="nn">itertools</span></td>
439 441 </tr>
440 442 <tr id="l8" class="thisrev">
441 443 <td class="annotate parity0">
442 444
443 445 <div class="annotate-info">
444 446 <div>
445 <a href="/annotate/f4fca47b67e6/primes.py#l8">
446 f4fca47b67e6</a>
447 <a href="/annotate/687f2d169546/primes.py#l8">
448 687f2d169546</a>
447 449 a
448 450 </div>
449 451 <div><em>&#116;&#101;&#115;&#116;</em></div>
450 452 <div>parents: </div>
451 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
452 <a href="/rev/f4fca47b67e6">changeset</a>
453 <a href="/diff/687f2d169546/primes.py">diff</a>
454 <a href="/rev/687f2d169546">changeset</a>
453 455 </div>
454 456 </td>
455 457 <td class="source followlines-btn-parent"><a href="#l8"> 8</a> </td>
@@ -459,14 +461,14 b' hgweb fileannotate, html'
459 461
460 462 <div class="annotate-info">
461 463 <div>
462 <a href="/annotate/f4fca47b67e6/primes.py#l9">
463 f4fca47b67e6</a>
464 <a href="/annotate/687f2d169546/primes.py#l9">
465 687f2d169546</a>
464 466 a
465 467 </div>
466 468 <div><em>&#116;&#101;&#115;&#116;</em></div>
467 469 <div>parents: </div>
468 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
469 <a href="/rev/f4fca47b67e6">changeset</a>
470 <a href="/diff/687f2d169546/primes.py">diff</a>
471 <a href="/rev/687f2d169546">changeset</a>
470 472 </div>
471 473 </td>
472 474 <td class="source followlines-btn-parent"><a href="#l9"> 9</a> <span class="kn">def</span> <span class="nf">primes</span><span class="p">():</span></td>
@@ -476,14 +478,14 b' hgweb fileannotate, html'
476 478
477 479 <div class="annotate-info">
478 480 <div>
479 <a href="/annotate/f4fca47b67e6/primes.py#l10">
480 f4fca47b67e6</a>
481 <a href="/annotate/687f2d169546/primes.py#l10">
482 687f2d169546</a>
481 483 a
482 484 </div>
483 485 <div><em>&#116;&#101;&#115;&#116;</em></div>
484 486 <div>parents: </div>
485 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
486 <a href="/rev/f4fca47b67e6">changeset</a>
487 <a href="/diff/687f2d169546/primes.py">diff</a>
488 <a href="/rev/687f2d169546">changeset</a>
487 489 </div>
488 490 </td>
489 491 <td class="source followlines-btn-parent"><a href="#l10"> 10</a> <span class="sd">&quot;&quot;&quot;Generate all primes.&quot;&quot;&quot;</span></td>
@@ -493,14 +495,14 b' hgweb fileannotate, html'
493 495
494 496 <div class="annotate-info">
495 497 <div>
496 <a href="/annotate/f4fca47b67e6/primes.py#l11">
497 f4fca47b67e6</a>
498 <a href="/annotate/687f2d169546/primes.py#l11">
499 687f2d169546</a>
498 500 a
499 501 </div>
500 502 <div><em>&#116;&#101;&#115;&#116;</em></div>
501 503 <div>parents: </div>
502 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
503 <a href="/rev/f4fca47b67e6">changeset</a>
504 <a href="/diff/687f2d169546/primes.py">diff</a>
505 <a href="/rev/687f2d169546">changeset</a>
504 506 </div>
505 507 </td>
506 508 <td class="source followlines-btn-parent"><a href="#l11"> 11</a> <span class="kn">def</span> <span class="nf">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
@@ -510,14 +512,14 b' hgweb fileannotate, html'
510 512
511 513 <div class="annotate-info">
512 514 <div>
513 <a href="/annotate/f4fca47b67e6/primes.py#l12">
514 f4fca47b67e6</a>
515 <a href="/annotate/687f2d169546/primes.py#l12">
516 687f2d169546</a>
515 517 a
516 518 </div>
517 519 <div><em>&#116;&#101;&#115;&#116;</em></div>
518 520 <div>parents: </div>
519 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
520 <a href="/rev/f4fca47b67e6">changeset</a>
521 <a href="/diff/687f2d169546/primes.py">diff</a>
522 <a href="/rev/687f2d169546">changeset</a>
521 523 </div>
522 524 </td>
523 525 <td class="source followlines-btn-parent"><a href="#l12"> 12</a> <span class="n">p</span> <span class="o">=</span> <span class="n">ns</span><span class="o">.</span><span class="n">next</span><span class="p">()</span></td>
@@ -527,14 +529,14 b' hgweb fileannotate, html'
527 529
528 530 <div class="annotate-info">
529 531 <div>
530 <a href="/annotate/f4fca47b67e6/primes.py#l13">
531 f4fca47b67e6</a>
532 <a href="/annotate/687f2d169546/primes.py#l13">
533 687f2d169546</a>
532 534 a
533 535 </div>
534 536 <div><em>&#116;&#101;&#115;&#116;</em></div>
535 537 <div>parents: </div>
536 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
537 <a href="/rev/f4fca47b67e6">changeset</a>
538 <a href="/diff/687f2d169546/primes.py">diff</a>
539 <a href="/rev/687f2d169546">changeset</a>
538 540 </div>
539 541 </td>
540 542 <td class="source followlines-btn-parent"><a href="#l13"> 13</a> <span class="c"># It is important to yield *here* in order to stop the</span></td>
@@ -544,14 +546,14 b' hgweb fileannotate, html'
544 546
545 547 <div class="annotate-info">
546 548 <div>
547 <a href="/annotate/f4fca47b67e6/primes.py#l14">
548 f4fca47b67e6</a>
549 <a href="/annotate/687f2d169546/primes.py#l14">
550 687f2d169546</a>
549 551 a
550 552 </div>
551 553 <div><em>&#116;&#101;&#115;&#116;</em></div>
552 554 <div>parents: </div>
553 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
554 <a href="/rev/f4fca47b67e6">changeset</a>
555 <a href="/diff/687f2d169546/primes.py">diff</a>
556 <a href="/rev/687f2d169546">changeset</a>
555 557 </div>
556 558 </td>
557 559 <td class="source followlines-btn-parent"><a href="#l14"> 14</a> <span class="c"># infinite recursion.</span></td>
@@ -561,14 +563,14 b' hgweb fileannotate, html'
561 563
562 564 <div class="annotate-info">
563 565 <div>
564 <a href="/annotate/f4fca47b67e6/primes.py#l15">
565 f4fca47b67e6</a>
566 <a href="/annotate/687f2d169546/primes.py#l15">
567 687f2d169546</a>
566 568 a
567 569 </div>
568 570 <div><em>&#116;&#101;&#115;&#116;</em></div>
569 571 <div>parents: </div>
570 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
571 <a href="/rev/f4fca47b67e6">changeset</a>
572 <a href="/diff/687f2d169546/primes.py">diff</a>
573 <a href="/rev/687f2d169546">changeset</a>
572 574 </div>
573 575 </td>
574 576 <td class="source followlines-btn-parent"><a href="#l15"> 15</a> <span class="kn">yield</span> <span class="n">p</span></td>
@@ -578,31 +580,31 b' hgweb fileannotate, html'
578 580
579 581 <div class="annotate-info">
580 582 <div>
581 <a href="/annotate/f4fca47b67e6/primes.py#l16">
582 f4fca47b67e6</a>
583 <a href="/annotate/687f2d169546/primes.py#l16">
584 687f2d169546</a>
583 585 a
584 586 </div>
585 587 <div><em>&#116;&#101;&#115;&#116;</em></div>
586 588 <div>parents: </div>
587 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
588 <a href="/rev/f4fca47b67e6">changeset</a>
589 <a href="/diff/687f2d169546/primes.py">diff</a>
590 <a href="/rev/687f2d169546">changeset</a>
589 591 </div>
590 592 </td>
591 <td class="source followlines-btn-parent"><a href="#l16"> 16</a> <span class="n">ns</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></td>
593 <td class="source followlines-btn-parent"><a href="#l16"> 16</a> <span class="n">ns</span> <span class="o">=</span> <span class="n">itertools</span><span class="o">.</span><span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">%</span> <span class="n">p</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">ns</span><span class="p">)</span></td>
592 594 </tr>
593 595 <tr id="l17" class="thisrev">
594 596 <td class="annotate parity0">
595 597
596 598 <div class="annotate-info">
597 599 <div>
598 <a href="/annotate/f4fca47b67e6/primes.py#l17">
599 f4fca47b67e6</a>
600 <a href="/annotate/687f2d169546/primes.py#l17">
601 687f2d169546</a>
600 602 a
601 603 </div>
602 604 <div><em>&#116;&#101;&#115;&#116;</em></div>
603 605 <div>parents: </div>
604 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
605 <a href="/rev/f4fca47b67e6">changeset</a>
606 <a href="/diff/687f2d169546/primes.py">diff</a>
607 <a href="/rev/687f2d169546">changeset</a>
606 608 </div>
607 609 </td>
608 610 <td class="source followlines-btn-parent"><a href="#l17"> 17</a> <span class="kn">for</span> <span class="n">n</span> <span class="ow">in</span> <span class="n">sieve</span><span class="p">(</span><span class="n">ns</span><span class="p">):</span></td>
@@ -612,14 +614,14 b' hgweb fileannotate, html'
612 614
613 615 <div class="annotate-info">
614 616 <div>
615 <a href="/annotate/f4fca47b67e6/primes.py#l18">
616 f4fca47b67e6</a>
617 <a href="/annotate/687f2d169546/primes.py#l18">
618 687f2d169546</a>
617 619 a
618 620 </div>
619 621 <div><em>&#116;&#101;&#115;&#116;</em></div>
620 622 <div>parents: </div>
621 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
622 <a href="/rev/f4fca47b67e6">changeset</a>
623 <a href="/diff/687f2d169546/primes.py">diff</a>
624 <a href="/rev/687f2d169546">changeset</a>
623 625 </div>
624 626 </td>
625 627 <td class="source followlines-btn-parent"><a href="#l18"> 18</a> <span class="kn">yield</span> <span class="n">n</span></td>
@@ -629,14 +631,14 b' hgweb fileannotate, html'
629 631
630 632 <div class="annotate-info">
631 633 <div>
632 <a href="/annotate/f4fca47b67e6/primes.py#l19">
633 f4fca47b67e6</a>
634 <a href="/annotate/687f2d169546/primes.py#l19">
635 687f2d169546</a>
634 636 a
635 637 </div>
636 638 <div><em>&#116;&#101;&#115;&#116;</em></div>
637 639 <div>parents: </div>
638 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
639 <a href="/rev/f4fca47b67e6">changeset</a>
640 <a href="/diff/687f2d169546/primes.py">diff</a>
641 <a href="/rev/687f2d169546">changeset</a>
640 642 </div>
641 643 </td>
642 644 <td class="source followlines-btn-parent"><a href="#l19"> 19</a> </td>
@@ -646,204 +648,221 b' hgweb fileannotate, html'
646 648
647 649 <div class="annotate-info">
648 650 <div>
649 <a href="/annotate/f4fca47b67e6/primes.py#l20">
650 f4fca47b67e6</a>
651 <a href="/annotate/687f2d169546/primes.py#l20">
652 687f2d169546</a>
651 653 a
652 654 </div>
653 655 <div><em>&#116;&#101;&#115;&#116;</em></div>
654 656 <div>parents: </div>
655 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
656 <a href="/rev/f4fca47b67e6">changeset</a>
657 <a href="/diff/687f2d169546/primes.py">diff</a>
658 <a href="/rev/687f2d169546">changeset</a>
657 659 </div>
658 660 </td>
659 <td class="source followlines-btn-parent"><a href="#l20"> 20</a> <span class="n">odds</span> <span class="o">=</span> <span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">count</span><span class="p">())</span></td>
661 <td class="source followlines-btn-parent"><a href="#l20"> 20</a> <span class="n">odds</span> <span class="o">=</span> <span class="n">itertools</span><span class="o">.</span><span class="n">ifilter</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">i</span><span class="p">:</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">1</span><span class="p">,</span> <span class="n">itertools</span><span class="o">.</span><span class="n">count</span><span class="p">())</span></td>
660 662 </tr>
661 663 <tr id="l21" class="thisrev">
662 664 <td class="annotate parity0">
663 665
664 666 <div class="annotate-info">
665 667 <div>
666 <a href="/annotate/f4fca47b67e6/primes.py#l21">
667 f4fca47b67e6</a>
668 <a href="/annotate/687f2d169546/primes.py#l21">
669 687f2d169546</a>
668 670 a
669 671 </div>
670 672 <div><em>&#116;&#101;&#115;&#116;</em></div>
671 673 <div>parents: </div>
672 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
673 <a href="/rev/f4fca47b67e6">changeset</a>
674 <a href="/diff/687f2d169546/primes.py">diff</a>
675 <a href="/rev/687f2d169546">changeset</a>
674 676 </div>
675 677 </td>
676 <td class="source followlines-btn-parent"><a href="#l21"> 21</a> <span class="kn">return</span> <span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></td>
678 <td class="source followlines-btn-parent"><a href="#l21"> 21</a> <span class="n">dropwhile</span> <span class="o">=</span> <span class="n">itertools</span><span class="o">.</span><span class="n">dropwhile</span></td>
677 679 </tr>
678 680 <tr id="l22" class="thisrev">
679 681 <td class="annotate parity0">
680 682
681 683 <div class="annotate-info">
682 684 <div>
683 <a href="/annotate/f4fca47b67e6/primes.py#l22">
684 f4fca47b67e6</a>
685 <a href="/annotate/687f2d169546/primes.py#l22">
686 687f2d169546</a>
685 687 a
686 688 </div>
687 689 <div><em>&#116;&#101;&#115;&#116;</em></div>
688 690 <div>parents: </div>
689 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
690 <a href="/rev/f4fca47b67e6">changeset</a>
691 <a href="/diff/687f2d169546/primes.py">diff</a>
692 <a href="/rev/687f2d169546">changeset</a>
691 693 </div>
692 694 </td>
693 <td class="source followlines-btn-parent"><a href="#l22"> 22</a> </td>
695 <td class="source followlines-btn-parent"><a href="#l22"> 22</a> <span class="kn">return</span> <span class="n">itertools</span><span class="o">.</span><span class="n">chain</span><span class="p">([</span><span class="mi">2</span><span class="p">],</span> <span class="n">sieve</span><span class="p">(</span><span class="n">dropwhile</span><span class="p">(</span><span class="kn">lambda</span> <span class="n">n</span><span class="p">:</span> <span class="n">n</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">,</span> <span class="n">odds</span><span class="p">)))</span></td>
694 696 </tr>
695 697 <tr id="l23" class="thisrev">
696 698 <td class="annotate parity0">
697 699
698 700 <div class="annotate-info">
699 701 <div>
700 <a href="/annotate/f4fca47b67e6/primes.py#l23">
701 f4fca47b67e6</a>
702 <a href="/annotate/687f2d169546/primes.py#l23">
703 687f2d169546</a>
702 704 a
703 705 </div>
704 706 <div><em>&#116;&#101;&#115;&#116;</em></div>
705 707 <div>parents: </div>
706 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
707 <a href="/rev/f4fca47b67e6">changeset</a>
708 <a href="/diff/687f2d169546/primes.py">diff</a>
709 <a href="/rev/687f2d169546">changeset</a>
708 710 </div>
709 711 </td>
710 <td class="source followlines-btn-parent"><a href="#l23"> 23</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></td>
712 <td class="source followlines-btn-parent"><a href="#l23"> 23</a> </td>
711 713 </tr>
712 714 <tr id="l24" class="thisrev">
713 715 <td class="annotate parity0">
714 716
715 717 <div class="annotate-info">
716 718 <div>
717 <a href="/annotate/f4fca47b67e6/primes.py#l24">
718 f4fca47b67e6</a>
719 <a href="/annotate/687f2d169546/primes.py#l24">
720 687f2d169546</a>
719 721 a
720 722 </div>
721 723 <div><em>&#116;&#101;&#115;&#116;</em></div>
722 724 <div>parents: </div>
723 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
724 <a href="/rev/f4fca47b67e6">changeset</a>
725 <a href="/diff/687f2d169546/primes.py">diff</a>
726 <a href="/rev/687f2d169546">changeset</a>
725 727 </div>
726 728 </td>
727 <td class="source followlines-btn-parent"><a href="#l24"> 24</a> <span class="kn">import</span> <span class="nn">sys</span></td>
729 <td class="source followlines-btn-parent"><a href="#l24"> 24</a> <span class="kn">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">&quot;__main__&quot;</span><span class="p">:</span></td>
728 730 </tr>
729 731 <tr id="l25" class="thisrev">
730 732 <td class="annotate parity0">
731 733
732 734 <div class="annotate-info">
733 735 <div>
734 <a href="/annotate/f4fca47b67e6/primes.py#l25">
735 f4fca47b67e6</a>
736 <a href="/annotate/687f2d169546/primes.py#l25">
737 687f2d169546</a>
736 738 a
737 739 </div>
738 740 <div><em>&#116;&#101;&#115;&#116;</em></div>
739 741 <div>parents: </div>
740 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
741 <a href="/rev/f4fca47b67e6">changeset</a>
742 <a href="/diff/687f2d169546/primes.py">diff</a>
743 <a href="/rev/687f2d169546">changeset</a>
742 744 </div>
743 745 </td>
744 <td class="source followlines-btn-parent"><a href="#l25"> 25</a> <span class="kn">try</span><span class="p">:</span></td>
746 <td class="source followlines-btn-parent"><a href="#l25"> 25</a> <span class="kn">import</span> <span class="nn">sys</span></td>
745 747 </tr>
746 748 <tr id="l26" class="thisrev">
747 749 <td class="annotate parity0">
748 750
749 751 <div class="annotate-info">
750 752 <div>
751 <a href="/annotate/f4fca47b67e6/primes.py#l26">
752 f4fca47b67e6</a>
753 <a href="/annotate/687f2d169546/primes.py#l26">
754 687f2d169546</a>
753 755 a
754 756 </div>
755 757 <div><em>&#116;&#101;&#115;&#116;</em></div>
756 758 <div>parents: </div>
757 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
758 <a href="/rev/f4fca47b67e6">changeset</a>
759 <a href="/diff/687f2d169546/primes.py">diff</a>
760 <a href="/rev/687f2d169546">changeset</a>
759 761 </div>
760 762 </td>
761 <td class="source followlines-btn-parent"><a href="#l26"> 26</a> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></td>
763 <td class="source followlines-btn-parent"><a href="#l26"> 26</a> <span class="kn">try</span><span class="p">:</span></td>
762 764 </tr>
763 765 <tr id="l27" class="thisrev">
764 766 <td class="annotate parity0">
765 767
766 768 <div class="annotate-info">
767 769 <div>
768 <a href="/annotate/f4fca47b67e6/primes.py#l27">
769 f4fca47b67e6</a>
770 <a href="/annotate/687f2d169546/primes.py#l27">
771 687f2d169546</a>
770 772 a
771 773 </div>
772 774 <div><em>&#116;&#101;&#115;&#116;</em></div>
773 775 <div>parents: </div>
774 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
775 <a href="/rev/f4fca47b67e6">changeset</a>
776 <a href="/diff/687f2d169546/primes.py">diff</a>
777 <a href="/rev/687f2d169546">changeset</a>
776 778 </div>
777 779 </td>
778 <td class="source followlines-btn-parent"><a href="#l27"> 27</a> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></td>
780 <td class="source followlines-btn-parent"><a href="#l27"> 27</a> <span class="n">n</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">sys</span><span class="o">.</span><span class="n">argv</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span></td>
779 781 </tr>
780 782 <tr id="l28" class="thisrev">
781 783 <td class="annotate parity0">
782 784
783 785 <div class="annotate-info">
784 786 <div>
785 <a href="/annotate/f4fca47b67e6/primes.py#l28">
786 f4fca47b67e6</a>
787 <a href="/annotate/687f2d169546/primes.py#l28">
788 687f2d169546</a>
787 789 a
788 790 </div>
789 791 <div><em>&#116;&#101;&#115;&#116;</em></div>
790 792 <div>parents: </div>
791 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
792 <a href="/rev/f4fca47b67e6">changeset</a>
793 <a href="/diff/687f2d169546/primes.py">diff</a>
794 <a href="/rev/687f2d169546">changeset</a>
793 795 </div>
794 796 </td>
795 <td class="source followlines-btn-parent"><a href="#l28"> 28</a> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></td>
797 <td class="source followlines-btn-parent"><a href="#l28"> 28</a> <span class="kn">except</span> <span class="p">(</span><span class="ne">ValueError</span><span class="p">,</span> <span class="ne">IndexError</span><span class="p">):</span></td>
796 798 </tr>
797 799 <tr id="l29" class="thisrev">
798 800 <td class="annotate parity0">
799 801
800 802 <div class="annotate-info">
801 803 <div>
802 <a href="/annotate/f4fca47b67e6/primes.py#l29">
803 f4fca47b67e6</a>
804 <a href="/annotate/687f2d169546/primes.py#l29">
805 687f2d169546</a>
804 806 a
805 807 </div>
806 808 <div><em>&#116;&#101;&#115;&#116;</em></div>
807 809 <div>parents: </div>
808 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
809 <a href="/rev/f4fca47b67e6">changeset</a>
810 <a href="/diff/687f2d169546/primes.py">diff</a>
811 <a href="/rev/687f2d169546">changeset</a>
810 812 </div>
811 813 </td>
812 <td class="source followlines-btn-parent"><a href="#l29"> 29</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></td>
814 <td class="source followlines-btn-parent"><a href="#l29"> 29</a> <span class="n">n</span> <span class="o">=</span> <span class="mi">10</span></td>
813 815 </tr>
814 816 <tr id="l30" class="thisrev">
815 817 <td class="annotate parity0">
816 818
817 819 <div class="annotate-info">
818 820 <div>
819 <a href="/annotate/f4fca47b67e6/primes.py#l30">
820 f4fca47b67e6</a>
821 <a href="/annotate/687f2d169546/primes.py#l30">
822 687f2d169546</a>
821 823 a
822 824 </div>
823 825 <div><em>&#116;&#101;&#115;&#116;</em></div>
824 826 <div>parents: </div>
825 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
826 <a href="/rev/f4fca47b67e6">changeset</a>
827 <a href="/diff/687f2d169546/primes.py">diff</a>
828 <a href="/rev/687f2d169546">changeset</a>
827 829 </div>
828 830 </td>
829 <td class="source followlines-btn-parent"><a href="#l30"> 30</a> <span class="kn">print</span><span class="p">(</span><span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">))))</span></td>
831 <td class="source followlines-btn-parent"><a href="#l30"> 30</a> <span class="n">p</span> <span class="o">=</span> <span class="n">primes</span><span class="p">()</span></td>
830 832 </tr>
831 833 <tr id="l31" class="thisrev">
832 834 <td class="annotate parity0">
833 835
834 836 <div class="annotate-info">
835 837 <div>
836 <a href="/annotate/f4fca47b67e6/primes.py#l31">
837 f4fca47b67e6</a>
838 <a href="/annotate/687f2d169546/primes.py#l31">
839 687f2d169546</a>
838 840 a
839 841 </div>
840 842 <div><em>&#116;&#101;&#115;&#116;</em></div>
841 843 <div>parents: </div>
842 <a href="/diff/f4fca47b67e6/primes.py">diff</a>
843 <a href="/rev/f4fca47b67e6">changeset</a>
844 <a href="/diff/687f2d169546/primes.py">diff</a>
845 <a href="/rev/687f2d169546">changeset</a>
844 846 </div>
845 847 </td>
846 <td class="source followlines-btn-parent"><a href="#l31"> 31</a> </td>
848 <td class="source followlines-btn-parent"><a href="#l31"> 31</a> <span class="kn">print</span><span class="p">(</span><span class="s">&quot;The first </span><span class="si">%d</span><span class="s"> primes: </span><span class="si">%s</span><span class="s">&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">n</span><span class="p">,</span> <span class="nb">list</span><span class="p">(</span><span class="n">itertools</span><span class="o">.</span><span class="n">islice</span><span class="p">(</span><span class="n">p</span><span class="p">,</span> <span class="n">n</span><span class="p">))))</span></td>
849 </tr>
850 <tr id="l32" class="thisrev">
851 <td class="annotate parity0">
852
853 <div class="annotate-info">
854 <div>
855 <a href="/annotate/687f2d169546/primes.py#l32">
856 687f2d169546</a>
857 a
858 </div>
859 <div><em>&#116;&#101;&#115;&#116;</em></div>
860 <div>parents: </div>
861 <a href="/diff/687f2d169546/primes.py">diff</a>
862 <a href="/rev/687f2d169546">changeset</a>
863 </div>
864 </td>
865 <td class="source followlines-btn-parent"><a href="#l32"> 32</a> </td>
847 866 </tr>
848 867 </tbody>
849 868 </table>
General Comments 0
You need to be logged in to leave comments. Login now