diff --git a/mercurial/templates/paper/map b/mercurial/templates/paper/map
--- a/mercurial/templates/paper/map
+++ b/mercurial/templates/paper/map
@@ -76,12 +76,12 @@ fileline = '
filelogentry = filelogentry.tmpl
annotateline = '
-
-
+
test@0
|
- 1 #!/usr/bin/env python |
+ 1 #!/usr/bin/env python |
-
+
test@0
|
- 2 |
+ 2 |
-
+
test@0
|
- 3 """Fun with generators. Corresponding Haskell implementation: |
+ 3 """Fun with generators. Corresponding Haskell implementation: |
-
+
test@0
|
- 4 |
+ 4 |
-
+
test@0
|
- 5 primes = 2 : sieve [3, 5..] |
+ 5 primes = 2 : sieve [3, 5..] |
-
+
test@0
|
- 6 where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0] |
+ 6 where sieve (p:ns) = p : sieve [n | n <- ns, mod n p /= 0] |
-
+
test@0
|
- 7 """ |
+ 7 """ |
-
+
test@0
|
- 8 |
+ 8 |
-
+
test@0
|
- 9 from itertools import dropwhile, ifilter, islice, count, chain |
+ 9 from itertools import dropwhile, ifilter, islice, count, chain |
-
+
test@0
|
- 10 |
+ 10 |
-
+
test@0
|
- 11 def primes(): |
+ 11 def primes(): |
-
+
test@0
|
- 12 """Generate all primes.""" |
+ 12 """Generate all primes.""" |
-
+
test@0
|
- 13 def sieve(ns): |
+ 13 def sieve(ns): |
-
+
test@0
|
- 14 p = ns.next() |
+ 14 p = ns.next() |
-
+
test@0
|
- 15 # It is important to yield *here* in order to stop the |
+ 15 # It is important to yield *here* in order to stop the |
-
+
test@0
|
- 16 # infinite recursion. |
+ 16 # infinite recursion. |
-
+
test@0
|
- 17 yield p |
+ 17 yield p |
-
+
test@0
|
- 18 ns = ifilter(lambda n: n % p != 0, ns) |
+ 18 ns = ifilter(lambda n: n % p != 0, ns) |
-
+
test@0
|
- 19 for n in sieve(ns): |
+ 19 for n in sieve(ns): |
-
+
test@0
|
- 20 yield n |
+ 20 yield n |
-
+
test@0
|
- 21 |
+ 21 |
-
+
test@0
|
- 22 odds = ifilter(lambda i: i % 2 == 1, count()) |
+ 22 odds = ifilter(lambda i: i % 2 == 1, count()) |
-
+
test@0
|
- 23 return chain([2], sieve(dropwhile(lambda n: n < 3, odds))) |
+ 23 return chain([2], sieve(dropwhile(lambda n: n < 3, odds))) |
-
+
test@0
|
- 24 |
+ 24 |
-
+
test@0
|
- 25 if __name__ == "__main__": |
+ 25 if __name__ == "__main__": |
-
+
test@0
|
- 26 import sys |
+ 26 import sys |
-
+
test@0
|
- 27 try: |
+ 27 try: |
-
+
test@0
|
- 28 n = int(sys.argv[1]) |
+ 28 n = int(sys.argv[1]) |
-
+
test@0
|
- 29 except (ValueError, IndexError): |
+ 29 except (ValueError, IndexError): |
-
+
test@0
|
- 30 n = 10 |
+ 30 n = 10 |
-
+
test@0
|
- 31 p = primes() |
+ 31 p = primes() |
-
+
test@0
|
- 32 print "The first %d primes: %s" % (n, list(islice(p, n))) |
+ 32 print "The first %d primes: %s" % (n, list(islice(p, n))) |