summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_generators.pyo
blob: e9df90e650b27efad52e562f112863f8ec3a5261 (plain)
ofshex dumpascii
0000 03 f3 0d 0a 50 5c ac 51 63 00 00 00 00 00 00 00 00 03 00 00 00 40 00 00 00 73 e5 00 00 00 64 00 ....P\.Qc............@...s....d.
0020 00 5a 00 00 64 01 00 5a 01 00 64 02 00 5a 02 00 64 03 00 5a 03 00 64 04 00 5a 04 00 64 05 00 84 .Z..d..Z..d..Z..d..Z..d..Z..d...
0040 00 00 5a 05 00 64 06 00 84 00 00 5a 06 00 64 07 00 84 00 00 5a 07 00 64 08 00 66 00 00 64 09 00 ..Z..d.....Z..d.....Z..d..f..d..
0060 84 00 00 83 00 00 59 5a 08 00 64 0a 00 66 00 00 64 0b 00 84 00 00 83 00 00 59 5a 09 00 64 0c 00 ......YZ..d..f..d........YZ..d..
0080 5a 0a 00 64 0d 00 5a 0b 00 64 0e 00 5a 0c 00 64 0f 00 5a 0d 00 69 09 00 65 00 00 64 10 00 36 65 Z..d..Z..d..Z..d..Z..i..e..d..6e
00a0 01 00 64 11 00 36 65 02 00 64 12 00 36 65 03 00 64 13 00 36 65 04 00 64 14 00 36 65 0a 00 64 15 ..d..6e..d..6e..d..6e..d..6e..d.
00c0 00 36 65 0b 00 64 16 00 36 65 0c 00 64 17 00 36 65 0d 00 64 18 00 36 5a 0e 00 65 0f 00 64 19 00 .6e..d..6e..d..6e..d..6Z..e..d..
00e0 84 01 00 5a 10 00 65 11 00 64 1a 00 6b 02 00 72 e1 00 65 10 00 64 1b 00 83 01 00 01 6e 00 00 64 ...Z..e..d..k..r..e..d......n..d
0100 1c 00 53 28 1d 00 00 00 73 dc 09 00 00 0a 4c 65 74 27 73 20 74 72 79 20 61 20 73 69 6d 70 6c 65 ..S(....s.....Let's.try.a.simple
0120 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 20 20 .generator:......>>>.def.f():...
0140 20 20 2e 2e 2e 20 20 20 20 79 69 65 6c 64 20 31 0a 20 20 20 20 2e 2e 2e 20 20 20 20 79 69 65 6c .........yield.1............yiel
0160 64 20 32 0a 0a 20 20 20 20 3e 3e 3e 20 66 6f 72 20 69 20 69 6e 20 66 28 29 3a 0a 20 20 20 20 2e d.2......>>>.for.i.in.f():......
0180 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 69 0a 20 20 20 20 31 0a 20 20 20 20 32 0a 20 20 20 20 3e .......print.i.....1.....2.....>
01a0 3e 3e 20 67 20 3d 20 66 28 29 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 20 20 >>.g.=.f().....>>>.g.next().....
01c0 31 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 20 20 32 0a 0a 22 46 61 6c 6c 69 1.....>>>.g.next().....2.."Falli
01e0 6e 67 20 6f 66 66 20 74 68 65 20 65 6e 64 22 20 73 74 6f 70 73 20 74 68 65 20 67 65 6e 65 72 61 ng.off.the.end".stops.the.genera
0200 74 6f 72 3a 0a 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 20 20 54 72 61 63 65 tor:......>>>.g.next().....Trace
0220 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 back.(most.recent.call.last):...
0240 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 31 2c 20 69 6e 20 3f ....File."<stdin>",.line.1,.in.?
0260 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 32 2c 20 69 .......File."<stdin>",.line.2,.i
0280 6e 20 67 0a 20 20 20 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 0a 22 72 65 74 75 72 6e 22 20 n.g.....StopIteration.."return".
02a0 61 6c 73 6f 20 73 74 6f 70 73 20 74 68 65 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a 20 20 20 20 3e also.stops.the.generator:......>
02c0 3e 3e 20 64 65 66 20 66 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a >>.def.f():.............yield.1.
02e0 20 20 20 20 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 ............return.............y
0300 69 65 6c 64 20 32 20 23 20 6e 65 76 65 72 20 72 65 61 63 68 65 64 0a 20 20 20 20 2e 2e 2e 0a 20 ield.2.#.never.reached..........
0320 20 20 20 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a ...>>>.g.=.f().....>>>.g.next().
0340 20 20 20 20 31 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 20 20 54 72 61 63 65 ....1.....>>>.g.next().....Trace
0360 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 back.(most.recent.call.last):...
0380 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 31 2c 20 69 6e 20 3f ....File."<stdin>",.line.1,.in.?
03a0 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 33 2c 20 69 .......File."<stdin>",.line.3,.i
03c0 6e 20 66 0a 20 20 20 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 20 20 20 20 3e 3e 3e 20 67 2e n.f.....StopIteration.....>>>.g.
03e0 6e 65 78 74 28 29 20 23 20 6f 6e 63 65 20 73 74 6f 70 70 65 64 2c 20 63 61 6e 27 74 20 62 65 20 next().#.once.stopped,.can't.be.
0400 72 65 73 75 6d 65 64 0a 20 20 20 20 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 resumed.....Traceback.(most.rece
0420 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 nt.call.last):.......File."<stdi
0440 6e 3e 22 2c 20 6c 69 6e 65 20 31 2c 20 69 6e 20 3f 0a 20 20 20 20 53 74 6f 70 49 74 65 72 61 74 n>",.line.1,.in.?.....StopIterat
0460 69 6f 6e 0a 0a 22 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 22 20 73 74 6f 70 73 ion.."raise.StopIteration".stops
0480 20 74 68 65 20 67 65 6e 65 72 61 74 6f 72 20 74 6f 6f 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 .the.generator.too:......>>>.def
04a0 20 66 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 20 20 20 20 2e 2e .f():.............yield.1.......
04c0 2e 20 20 20 20 20 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 20 20 20 20 2e 2e ......raise.StopIteration.......
04e0 2e 20 20 20 20 20 79 69 65 6c 64 20 32 20 23 20 6e 65 76 65 72 20 72 65 61 63 68 65 64 0a 20 20 ......yield.2.#.never.reached...
0500 20 20 2e 2e 2e 0a 20 20 20 20 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 20 20 20 20 3e 3e 3e 20 67 2e ..........>>>.g.=.f().....>>>.g.
0520 6e 65 78 74 28 29 0a 20 20 20 20 31 0a 20 20 20 20 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 next().....1.....>>>.g.next()...
0540 20 20 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 ..Traceback.(most.recent.call.la
0560 73 74 29 3a 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 st):.......File."<stdin>",.line.
0580 31 2c 20 69 6e 20 3f 0a 20 20 20 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 20 20 20 20 3e 3e 1,.in.?.....StopIteration.....>>
05a0 3e 20 67 2e 6e 65 78 74 28 29 0a 20 20 20 20 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 >.g.next().....Traceback.(most.r
05c0 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 ecent.call.last):.......File."<s
05e0 74 64 69 6e 3e 22 2c 20 6c 69 6e 65 20 31 2c 20 69 6e 20 3f 0a 20 20 20 20 53 74 6f 70 49 74 65 tdin>",.line.1,.in.?.....StopIte
0600 72 61 74 69 6f 6e 0a 0a 48 6f 77 65 76 65 72 2c 20 74 68 65 79 20 61 72 65 20 6e 6f 74 20 65 78 ration..However,.they.are.not.ex
0620 61 63 74 6c 79 20 65 71 75 69 76 61 6c 65 6e 74 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 67 actly.equivalent:......>>>.def.g
0640 31 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 1():.............try:...........
0660 20 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a ......return.............except:
0680 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 20 20 20 20 2e 2e 2e .................yield.1........
06a0 0a 20 20 20 20 3e 3e 3e 20 6c 69 73 74 28 67 31 28 29 29 0a 20 20 20 20 5b 5d 0a 0a 20 20 20 20 .....>>>.list(g1()).....[]......
06c0 3e 3e 3e 20 64 65 66 20 67 32 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 20 >>>.def.g2():.............try:..
06e0 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 ...............raise.StopIterati
0700 6f 6e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 on.............except:..........
0720 20 20 20 20 20 20 20 79 69 65 6c 64 20 34 32 0a 20 20 20 20 3e 3e 3e 20 70 72 69 6e 74 20 6c 69 .......yield.42.....>>>.print.li
0740 73 74 28 67 32 28 29 29 0a 20 20 20 20 5b 34 32 5d 0a 0a 54 68 69 73 20 6d 61 79 20 62 65 20 73 st(g2()).....[42]..This.may.be.s
0760 75 72 70 72 69 73 69 6e 67 20 61 74 20 66 69 72 73 74 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 urprising.at.first:......>>>.def
0780 20 67 33 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e 20 .g3():.............try:.........
07a0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 66 69 6e 61 6c ........return.............final
07c0 6c 79 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 20 20 20 20 ly:.................yield.1.....
07e0 2e 2e 2e 0a 20 20 20 20 3e 3e 3e 20 6c 69 73 74 28 67 33 28 29 29 0a 20 20 20 20 5b 31 5d 0a 0a ........>>>.list(g3()).....[1]..
0800 4c 65 74 27 73 20 63 72 65 61 74 65 20 61 6e 20 61 6c 74 65 72 6e 61 74 65 20 72 61 6e 67 65 28 Let's.create.an.alternate.range(
0820 29 20 66 75 6e 63 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 61 73 20 61 20 67 65 6e 65 ).function.implemented.as.a.gene
0840 72 61 74 6f 72 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 79 72 61 6e 67 65 28 6e 29 3a 0a 20 rator:......>>>.def.yrange(n):..
0860 20 20 20 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 29 3a 0a 20 20 ...........for.i.in.range(n):...
0880 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 69 0a 20 20 20 20 2e 2e 2e 0a 20 20 ..............yield.i...........
08a0 20 20 3e 3e 3e 20 6c 69 73 74 28 79 72 61 6e 67 65 28 35 29 29 0a 20 20 20 20 5b 30 2c 20 31 2c ..>>>.list(yrange(5)).....[0,.1,
08c0 20 32 2c 20 33 2c 20 34 5d 0a 0a 47 65 6e 65 72 61 74 6f 72 73 20 61 6c 77 61 79 73 20 72 65 74 .2,.3,.4]..Generators.always.ret
08e0 75 72 6e 20 74 6f 20 74 68 65 20 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 65 72 3a 0a 0a urn.to.the.most.recent.caller:..
0900 20 20 20 20 3e 3e 3e 20 64 65 66 20 63 72 65 61 74 6f 72 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 ....>>>.def.creator():..........
0920 20 20 20 72 20 3d 20 79 72 61 6e 67 65 28 35 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 70 72 69 ...r.=.yrange(5).............pri
0940 6e 74 20 22 63 72 65 61 74 6f 72 22 2c 20 72 2e 6e 65 78 74 28 29 0a 20 20 20 20 2e 2e 2e 20 20 nt."creator",.r.next()..........
0960 20 20 20 72 65 74 75 72 6e 20 72 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 ...return.r.............>>>.def.
0980 63 61 6c 6c 65 72 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 72 20 3d 20 63 72 65 61 74 6f caller():.............r.=.creato
09a0 72 28 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 3a 0a 20 20 20 20 r().............for.i.in.r:.....
09c0 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 63 61 6c 6c 65 72 22 2c 20 ................print."caller",.
09e0 69 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 3e 3e 3e 20 63 61 6c 6c 65 72 28 29 0a 20 20 20 20 63 i.............>>>.caller().....c
0a00 72 65 61 74 6f 72 20 30 0a 20 20 20 20 63 61 6c 6c 65 72 20 31 0a 20 20 20 20 63 61 6c 6c 65 72 reator.0.....caller.1.....caller
0a20 20 32 0a 20 20 20 20 63 61 6c 6c 65 72 20 33 0a 20 20 20 20 63 61 6c 6c 65 72 20 34 0a 0a 47 65 .2.....caller.3.....caller.4..Ge
0a40 6e 65 72 61 74 6f 72 73 20 63 61 6e 20 63 61 6c 6c 20 6f 74 68 65 72 20 67 65 6e 65 72 61 74 6f nerators.can.call.other.generato
0a60 72 73 3a 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 7a 72 61 6e 67 65 28 6e 29 3a 0a 20 20 20 20 rs:......>>>.def.zrange(n):.....
0a80 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 79 72 61 6e 67 65 28 6e 29 3a 0a 20 20 20 20 ........for.i.in.yrange(n):.....
0aa0 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 69 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 ............yield.i.............
0ac0 3e 3e 3e 20 6c 69 73 74 28 7a 72 61 6e 67 65 28 35 29 29 0a 20 20 20 20 5b 30 2c 20 31 2c 20 32 >>>.list(zrange(5)).....[0,.1,.2
0ae0 2c 20 33 2c 20 34 5d 0a 0a 73 71 11 00 00 0a 0a 53 70 65 63 69 66 69 63 61 74 69 6f 6e 3a 20 20 ,.3,.4]..sq.....Specification:..
0b00 59 69 65 6c 64 0a 0a 20 20 20 20 52 65 73 74 72 69 63 74 69 6f 6e 3a 20 20 41 20 67 65 6e 65 72 Yield......Restriction:..A.gener
0b20 61 74 6f 72 20 63 61 6e 6e 6f 74 20 62 65 20 72 65 73 75 6d 65 64 20 77 68 69 6c 65 20 69 74 20 ator.cannot.be.resumed.while.it.
0b40 69 73 20 61 63 74 69 76 65 6c 79 0a 20 20 20 20 72 75 6e 6e 69 6e 67 3a 0a 0a 20 20 20 20 3e 3e is.actively.....running:......>>
0b60 3e 20 64 65 66 20 67 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 69 20 3d 20 6d 65 2e 6e 65 >.def.g():.............i.=.me.ne
0b80 78 74 28 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 69 0a 20 20 20 20 3e 3e 3e xt().............yield.i.....>>>
0ba0 20 6d 65 20 3d 20 67 28 29 0a 20 20 20 20 3e 3e 3e 20 6d 65 2e 6e 65 78 74 28 29 0a 20 20 20 20 .me.=.g().....>>>.me.next().....
0bc0 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 Traceback.(most.recent.call.last
0be0 29 3a 0a 20 20 20 20 20 2e 2e 2e 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 72 69 6e 67 3e ):................File."<string>
0c00 22 2c 20 6c 69 6e 65 20 32 2c 20 69 6e 20 67 0a 20 20 20 20 56 61 6c 75 65 45 72 72 6f 72 3a 20 ",.line.2,.in.g.....ValueError:.
0c20 67 65 6e 65 72 61 74 6f 72 20 61 6c 72 65 61 64 79 20 65 78 65 63 75 74 69 6e 67 0a 0a 53 70 65 generator.already.executing..Spe
0c40 63 69 66 69 63 61 74 69 6f 6e 3a 20 52 65 74 75 72 6e 0a 0a 20 20 20 20 4e 6f 74 65 20 74 68 61 cification:.Return......Note.tha
0c60 74 20 72 65 74 75 72 6e 20 69 73 6e 27 74 20 61 6c 77 61 79 73 20 65 71 75 69 76 61 6c 65 6e 74 t.return.isn't.always.equivalent
0c80 20 74 6f 20 72 61 69 73 69 6e 67 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 3a 20 20 74 68 65 0a .to.raising.StopIteration:..the.
0ca0 20 20 20 20 64 69 66 66 65 72 65 6e 63 65 20 6c 69 65 73 20 69 6e 20 68 6f 77 20 65 6e 63 6c 6f ....difference.lies.in.how.enclo
0cc0 73 69 6e 67 20 74 72 79 2f 65 78 63 65 70 74 20 63 6f 6e 73 74 72 75 63 74 73 20 61 72 65 20 74 sing.try/except.constructs.are.t
0ce0 72 65 61 74 65 64 2e 0a 20 20 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a 0a 20 20 20 20 20 20 reated......For.example,........
0d00 20 20 3e 3e 3e 20 64 65 66 20 66 31 28 29 3a 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 ..>>>.def.f1():.................
0d20 74 72 79 3a 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a try:.....................return.
0d40 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 20 20 20 20 ................except:.........
0d60 2e 2e 2e 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 20 20 20 20 20 20 20 20 3e 3e 3e 20 70 ...........yield.1.........>>>.p
0d80 72 69 6e 74 20 6c 69 73 74 28 66 31 28 29 29 0a 20 20 20 20 20 20 20 20 5b 5d 0a 0a 20 20 20 20 rint.list(f1()).........[]......
0da0 62 65 63 61 75 73 65 2c 20 61 73 20 69 6e 20 61 6e 79 20 66 75 6e 63 74 69 6f 6e 2c 20 72 65 74 because,.as.in.any.function,.ret
0dc0 75 72 6e 20 73 69 6d 70 6c 79 20 65 78 69 74 73 2c 20 62 75 74 0a 0a 20 20 20 20 20 20 20 20 3e urn.simply.exits,.but..........>
0de0 3e 3e 20 64 65 66 20 66 32 28 29 3a 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 74 72 79 >>.def.f2():.................try
0e00 3a 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 53 74 6f 70 :.....................raise.Stop
0e20 49 74 65 72 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 Iteration.................except
0e40 3a 0a 20 20 20 20 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 34 32 0a 20 :.....................yield.42..
0e60 20 20 20 20 20 20 20 3e 3e 3e 20 70 72 69 6e 74 20 6c 69 73 74 28 66 32 28 29 29 0a 20 20 20 20 .......>>>.print.list(f2()).....
0e80 20 20 20 20 5b 34 32 5d 0a 0a 20 20 20 20 62 65 63 61 75 73 65 20 53 74 6f 70 49 74 65 72 61 74 ....[42]......because.StopIterat
0ea0 69 6f 6e 20 69 73 20 63 61 70 74 75 72 65 64 20 62 79 20 61 20 62 61 72 65 20 22 65 78 63 65 70 ion.is.captured.by.a.bare."excep
0ec0 74 22 2c 20 61 73 20 69 73 20 61 6e 79 0a 20 20 20 20 65 78 63 65 70 74 69 6f 6e 2e 0a 0a 53 70 t",.as.is.any.....exception...Sp
0ee0 65 63 69 66 69 63 61 74 69 6f 6e 3a 20 47 65 6e 65 72 61 74 6f 72 73 20 61 6e 64 20 45 78 63 65 ecification:.Generators.and.Exce
0f00 70 74 69 6f 6e 20 50 72 6f 70 61 67 61 74 69 6f 6e 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 66 ption.Propagation......>>>.def.f
0f20 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 20 31 2f 2f 30 0a 20 20 20 20 ():.............return.1//0.....
0f40 3e 3e 3e 20 64 65 66 20 67 28 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 66 >>>.def.g():.............yield.f
0f60 28 29 20 20 23 20 74 68 65 20 7a 65 72 6f 20 64 69 76 69 73 69 6f 6e 20 65 78 63 65 70 74 69 6f ()..#.the.zero.division.exceptio
0f80 6e 20 70 72 6f 70 61 67 61 74 65 73 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 34 n.propagates.............yield.4
0fa0 32 20 20 20 23 20 61 6e 64 20 77 65 27 6c 6c 20 6e 65 76 65 72 20 67 65 74 20 68 65 72 65 0a 20 2...#.and.we'll.never.get.here..
0fc0 20 20 20 3e 3e 3e 20 6b 20 3d 20 67 28 29 0a 20 20 20 20 3e 3e 3e 20 6b 2e 6e 65 78 74 28 29 0a ...>>>.k.=.g().....>>>.k.next().
0fe0 20 20 20 20 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 ....Traceback.(most.recent.call.
1000 6c 61 73 74 29 3a 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c 69 6e last):.......File."<stdin>",.lin
1020 65 20 31 2c 20 69 6e 20 3f 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 e.1,.in.?.......File."<stdin>",.
1040 6c 69 6e 65 20 32 2c 20 69 6e 20 67 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e line.2,.in.g.......File."<stdin>
1060 22 2c 20 6c 69 6e 65 20 32 2c 20 69 6e 20 66 0a 20 20 20 20 5a 65 72 6f 44 69 76 69 73 69 6f 6e ",.line.2,.in.f.....ZeroDivision
1080 45 72 72 6f 72 3a 20 69 6e 74 65 67 65 72 20 64 69 76 69 73 69 6f 6e 20 6f 72 20 6d 6f 64 75 6c Error:.integer.division.or.modul
10a0 6f 20 62 79 20 7a 65 72 6f 0a 20 20 20 20 3e 3e 3e 20 6b 2e 6e 65 78 74 28 29 20 20 23 20 61 6e o.by.zero.....>>>.k.next()..#.an
10c0 64 20 74 68 65 20 67 65 6e 65 72 61 74 6f 72 20 63 61 6e 6e 6f 74 20 62 65 20 72 65 73 75 6d 65 d.the.generator.cannot.be.resume
10e0 64 0a 20 20 20 20 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c d.....Traceback.(most.recent.cal
1100 6c 20 6c 61 73 74 29 3a 0a 20 20 20 20 20 20 46 69 6c 65 20 22 3c 73 74 64 69 6e 3e 22 2c 20 6c l.last):.......File."<stdin>",.l
1120 69 6e 65 20 31 2c 20 69 6e 20 3f 0a 20 20 20 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 20 20 ine.1,.in.?.....StopIteration...
1140 20 20 3e 3e 3e 0a 0a 53 70 65 63 69 66 69 63 61 74 69 6f 6e 3a 20 54 72 79 2f 45 78 63 65 70 74 ..>>>..Specification:.Try/Except
1160 2f 46 69 6e 61 6c 6c 79 0a 0a 20 20 20 20 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 20 20 20 20 2e /Finally......>>>.def.f():......
1180 2e 2e 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c .......try:.................yiel
11a0 64 20 31 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e d.1.................try:........
11c0 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 32 0a 20 20 20 20 2e 2e 2e 20 20 20 20 .............yield.2............
11e0 20 20 20 20 20 20 20 20 20 31 2f 2f 30 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 .........1//0...................
1200 20 20 79 69 65 6c 64 20 33 20 20 23 20 6e 65 76 65 72 20 67 65 74 20 68 65 72 65 0a 20 20 20 20 ..yield.3..#.never.get.here.....
1220 2e 2e 2e 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 5a 65 72 6f 44 69 76 69 73 69 6f 6e 45 ............except.ZeroDivisionE
1240 72 72 6f 72 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 rror:.....................yield.
1260 34 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 35 0a 20 20 4.....................yield.5...
1280 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 69 73 65 0a 20 20 20 20 2e 2e 2e 20 ..................raise.........
12a0 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 ........except:.................
12c0 20 20 20 20 79 69 65 6c 64 20 36 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c ....yield.6.................yiel
12e0 64 20 37 20 20 20 20 20 23 20 74 68 65 20 22 72 61 69 73 65 22 20 61 62 6f 76 65 20 73 74 6f 70 d.7.....#.the."raise".above.stop
1300 73 20 74 68 69 73 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a 0a 20 20 20 20 2e s.this.............except:......
1320 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 38 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 79 ...........yield.8.............y
1340 69 65 6c 64 20 39 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e 20 ield.9.............try:.........
1360 20 20 20 20 20 20 20 20 78 20 3d 20 31 32 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 66 69 6e 61 6c ........x.=.12.............final
1380 6c 79 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 30 0a 20 20 20 ly:.................yield.10....
13a0 20 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 31 0a 20 20 20 20 3e 3e 3e 20 70 72 69 6e 74 20 .........yield.11.....>>>.print.
13c0 6c 69 73 74 28 66 28 29 29 0a 20 20 20 20 5b 31 2c 20 32 2c 20 34 2c 20 35 2c 20 38 2c 20 39 2c list(f()).....[1,.2,.4,.5,.8,.9,
13e0 20 31 30 2c 20 31 31 5d 0a 20 20 20 20 3e 3e 3e 0a 0a 47 75 69 64 6f 27 73 20 62 69 6e 61 72 79 .10,.11].....>>>..Guido's.binary
1400 20 74 72 65 65 20 65 78 61 6d 70 6c 65 2e 0a 0a 20 20 20 20 3e 3e 3e 20 23 20 41 20 62 69 6e 61 .tree.example.......>>>.#.A.bina
1420 72 79 20 74 72 65 65 20 63 6c 61 73 73 2e 0a 20 20 20 20 3e 3e 3e 20 63 6c 61 73 73 20 54 72 65 ry.tree.class......>>>.class.Tre
1440 65 3a 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 e:.....................def.__ini
1460 74 5f 5f 28 73 65 6c 66 2c 20 6c 61 62 65 6c 2c 20 6c 65 66 74 3d 4e 6f 6e 65 2c 20 72 69 67 68 t__(self,.label,.left=None,.righ
1480 74 3d 4e 6f 6e 65 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 6c 61 t=None):.................self.la
14a0 62 65 6c 20 3d 20 6c 61 62 65 6c 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 bel.=.label.................self
14c0 2e 6c 65 66 74 20 3d 20 6c 65 66 74 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c .left.=.left.................sel
14e0 66 2e 72 69 67 68 74 20 3d 20 72 69 67 68 74 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 2e 2e 2e 20 f.right.=.right.................
1500 20 20 20 20 64 65 66 20 5f 5f 72 65 70 72 5f 5f 28 73 65 6c 66 2c 20 6c 65 76 65 6c 3d 30 2c 20 ....def.__repr__(self,.level=0,.
1520 69 6e 64 65 6e 74 3d 22 20 20 20 20 22 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 indent="...."):.................
1540 73 20 3d 20 6c 65 76 65 6c 2a 69 6e 64 65 6e 74 20 2b 20 72 65 70 72 28 73 65 6c 66 2e 6c 61 62 s.=.level*indent.+.repr(self.lab
1560 65 6c 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e 6c 65 66 74 el).................if.self.left
1580 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 73 20 3d 20 73 20 2b 20 22 5c :.....................s.=.s.+."\
15a0 6e 22 20 2b 20 73 65 6c 66 2e 6c 65 66 74 2e 5f 5f 72 65 70 72 5f 5f 28 6c 65 76 65 6c 2b 31 2c n".+.self.left.__repr__(level+1,
15c0 20 69 6e 64 65 6e 74 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 .indent).................if.self
15e0 2e 72 69 67 68 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 73 20 3d 20 .right:.....................s.=.
1600 73 20 2b 20 22 5c 6e 22 20 2b 20 73 65 6c 66 2e 72 69 67 68 74 2e 5f 5f 72 65 70 72 5f 5f 28 6c s.+."\n".+.self.right.__repr__(l
1620 65 76 65 6c 2b 31 2c 20 69 6e 64 65 6e 74 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 evel+1,.indent).................
1640 72 65 74 75 72 6e 20 73 0a 20 20 20 20 2e 2e 2e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 64 65 66 return.s.....................def
1660 20 5f 5f 69 74 65 72 5f 5f 28 73 65 6c 66 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 .__iter__(self):................
1680 20 72 65 74 75 72 6e 20 69 6e 6f 72 64 65 72 28 73 65 6c 66 29 0a 0a 20 20 20 20 3e 3e 3e 20 23 .return.inorder(self)......>>>.#
16a0 20 43 72 65 61 74 65 20 61 20 54 72 65 65 20 66 72 6f 6d 20 61 20 6c 69 73 74 2e 0a 20 20 20 20 .Create.a.Tree.from.a.list......
16c0 3e 3e 3e 20 64 65 66 20 74 72 65 65 28 6c 69 73 74 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 >>>.def.tree(list):.............
16e0 6e 20 3d 20 6c 65 6e 28 6c 69 73 74 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 69 66 20 6e 20 3d n.=.len(list).............if.n.=
1700 3d 20 30 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 5b 5d 0a 20 =.0:.................return.[]..
1720 20 20 20 2e 2e 2e 20 20 20 20 20 69 20 3d 20 6e 20 2f 2f 20 32 0a 20 20 20 20 2e 2e 2e 20 20 20 ...........i.=.n.//.2...........
1740 20 20 72 65 74 75 72 6e 20 54 72 65 65 28 6c 69 73 74 5b 69 5d 2c 20 74 72 65 65 28 6c 69 73 74 ..return.Tree(list[i],.tree(list
1760 5b 3a 69 5d 29 2c 20 74 72 65 65 28 6c 69 73 74 5b 69 2b 31 3a 5d 29 29 0a 0a 20 20 20 20 3e 3e [:i]),.tree(list[i+1:]))......>>
1780 3e 20 23 20 53 68 6f 77 20 69 74 20 6f 66 66 3a 20 63 72 65 61 74 65 20 61 20 74 72 65 65 2e 0a >.#.Show.it.off:.create.a.tree..
17a0 20 20 20 20 3e 3e 3e 20 74 20 3d 20 74 72 65 65 28 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e ....>>>.t.=.tree("ABCDEFGHIJKLMN
17c0 4f 50 51 52 53 54 55 56 57 58 59 5a 22 29 0a 0a 20 20 20 20 3e 3e 3e 20 23 20 41 20 72 65 63 75 OPQRSTUVWXYZ")......>>>.#.A.recu
17e0 72 73 69 76 65 20 67 65 6e 65 72 61 74 6f 72 20 74 68 61 74 20 67 65 6e 65 72 61 74 65 73 20 54 rsive.generator.that.generates.T
1800 72 65 65 20 6c 61 62 65 6c 73 20 69 6e 20 69 6e 2d 6f 72 64 65 72 2e 0a 20 20 20 20 3e 3e 3e 20 ree.labels.in.in-order......>>>.
1820 64 65 66 20 69 6e 6f 72 64 65 72 28 74 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 69 66 20 74 def.inorder(t):.............if.t
1840 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 6f 72 20 78 20 69 6e 20 69 6e 6f 72 64 :.................for.x.in.inord
1860 65 72 28 74 2e 6c 65 66 74 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 er(t.left):.....................
1880 79 69 65 6c 64 20 78 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 74 2e yield.x.................yield.t.
18a0 6c 61 62 65 6c 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 6f 72 20 78 20 69 6e 20 69 label.................for.x.in.i
18c0 6e 6f 72 64 65 72 28 74 2e 72 69 67 68 74 29 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 norder(t.right):................
18e0 20 20 20 20 20 79 69 65 6c 64 20 78 0a 0a 20 20 20 20 3e 3e 3e 20 23 20 53 68 6f 77 20 69 74 20 .....yield.x......>>>.#.Show.it.
1900 6f 66 66 3a 20 63 72 65 61 74 65 20 61 20 74 72 65 65 2e 0a 20 20 20 20 3e 3e 3e 20 74 20 3d 20 off:.create.a.tree......>>>.t.=.
1920 74 72 65 65 28 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a tree("ABCDEFGHIJKLMNOPQRSTUVWXYZ
1940 22 29 0a 20 20 20 20 3e 3e 3e 20 23 20 50 72 69 6e 74 20 74 68 65 20 6e 6f 64 65 73 20 6f 66 20 ").....>>>.#.Print.the.nodes.of.
1960 74 68 65 20 74 72 65 65 20 69 6e 20 69 6e 2d 6f 72 64 65 72 2e 0a 20 20 20 20 3e 3e 3e 20 66 6f the.tree.in.in-order......>>>.fo
1980 72 20 78 20 69 6e 20 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 78 2c 0a 20 r.x.in.t:.............print.x,..
19a0 20 20 20 41 20 42 20 43 20 44 20 45 20 46 20 47 20 48 20 49 20 4a 20 4b 20 4c 20 4d 20 4e 20 4f ...A.B.C.D.E.F.G.H.I.J.K.L.M.N.O
19c0 20 50 20 51 20 52 20 53 20 54 20 55 20 56 20 57 20 58 20 59 20 5a 0a 0a 20 20 20 20 3e 3e 3e 20 .P.Q.R.S.T.U.V.W.X.Y.Z......>>>.
19e0 23 20 41 20 6e 6f 6e 2d 72 65 63 75 72 73 69 76 65 20 67 65 6e 65 72 61 74 6f 72 2e 0a 20 20 20 #.A.non-recursive.generator.....
1a00 20 3e 3e 3e 20 64 65 66 20 69 6e 6f 72 64 65 72 28 6e 6f 64 65 29 3a 0a 20 20 20 20 2e 2e 2e 20 .>>>.def.inorder(node):.........
1a20 20 20 20 20 73 74 61 63 6b 20 3d 20 5b 5d 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 77 68 69 6c 65 ....stack.=.[].............while
1a40 20 6e 6f 64 65 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 6e 6f 64 .node:.................while.nod
1a60 65 2e 6c 65 66 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 63 e.left:.....................stac
1a80 6b 2e 61 70 70 65 6e 64 28 6e 6f 64 65 29 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 k.append(node)..................
1aa0 20 20 20 6e 6f 64 65 20 3d 20 6e 6f 64 65 2e 6c 65 66 74 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 ...node.=.node.left.............
1ac0 20 20 20 20 79 69 65 6c 64 20 6e 6f 64 65 2e 6c 61 62 65 6c 0a 20 20 20 20 2e 2e 2e 20 20 20 20 ....yield.node.label............
1ae0 20 20 20 20 20 77 68 69 6c 65 20 6e 6f 74 20 6e 6f 64 65 2e 72 69 67 68 74 3a 0a 20 20 20 20 2e .....while.not.node.right:......
1b00 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 ...............try:.............
1b20 20 20 20 20 20 20 20 20 20 20 20 20 6e 6f 64 65 20 3d 20 73 74 61 63 6b 2e 70 6f 70 28 29 0a 20 ............node.=.stack.pop()..
1b40 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 49 6e 64 65 78 45 ...................except.IndexE
1b60 72 72 6f 72 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 rror:.........................re
1b80 74 75 72 6e 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 6e turn.....................yield.n
1ba0 6f 64 65 2e 6c 61 62 65 6c 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 20 20 20 20 6e 6f 64 65 20 3d ode.label.................node.=
1bc0 20 6e 6f 64 65 2e 72 69 67 68 74 0a 0a 20 20 20 20 3e 3e 3e 20 23 20 45 78 65 72 63 69 73 65 20 .node.right......>>>.#.Exercise.
1be0 74 68 65 20 6e 6f 6e 2d 72 65 63 75 72 73 69 76 65 20 67 65 6e 65 72 61 74 6f 72 2e 0a 20 20 20 the.non-recursive.generator.....
1c00 20 3e 3e 3e 20 66 6f 72 20 78 20 69 6e 20 74 3a 0a 20 20 20 20 2e 2e 2e 20 20 20 20 20 70 72 69 .>>>.for.x.in.t:.............pri
1c20 6e 74 20 78 2c 0a 20 20 20 20 41 20 42 20 43 20 44 20 45 20 46 20 47 20 48 20 49 20 4a 20 4b 20 nt.x,.....A.B.C.D.E.F.G.H.I.J.K.
1c40 4c 20 4d 20 4e 20 4f 20 50 20 51 20 52 20 53 20 54 20 55 20 56 20 57 20 58 20 59 20 5a 0a 0a 73 L.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z..s
1c60 59 12 00 00 0a 0a 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 79 69 65 Y.....The.difference.between.yie
1c80 6c 64 69 6e 67 20 4e 6f 6e 65 20 61 6e 64 20 72 65 74 75 72 6e 69 6e 67 20 69 74 2e 0a 0a 3e 3e lding.None.and.returning.it...>>
1ca0 3e 20 64 65 66 20 67 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 >.def.g():.........for.i.in.rang
1cc0 65 28 33 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 4e 6f 6e 65 0a 2e 2e 2e e(3):.............yield.None....
1ce0 20 20 20 20 20 79 69 65 6c 64 20 4e 6f 6e 65 0a 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 0a 3e .....yield.None.........return.>
1d00 3e 3e 20 6c 69 73 74 28 67 28 29 29 0a 5b 4e 6f 6e 65 2c 20 4e 6f 6e 65 2c 20 4e 6f 6e 65 2c 20 >>.list(g()).[None,.None,.None,.
1d20 4e 6f 6e 65 5d 0a 0a 45 6e 73 75 72 65 20 74 68 61 74 20 65 78 70 6c 69 63 69 74 6c 79 20 72 61 None]..Ensure.that.explicitly.ra
1d40 69 73 69 6e 67 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 20 61 63 74 73 20 6c 69 6b 65 20 61 6e ising.StopIteration.acts.like.an
1d60 79 20 6f 74 68 65 72 20 65 78 63 65 70 74 69 6f 6e 0a 69 6e 20 74 72 79 2f 65 78 63 65 70 74 2c y.other.exception.in.try/except,
1d80 20 6e 6f 74 20 6c 69 6b 65 20 61 20 72 65 74 75 72 6e 2e 0a 0a 3e 3e 3e 20 64 65 66 20 67 28 29 .not.like.a.return...>>>.def.g()
1da0 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 2e :.........yield.1.........try:..
1dc0 2e 2e 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 2e ...........raise.StopIteration..
1de0 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 .......except:.............yield
1e00 20 32 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 33 0a 3e 3e 3e 20 6c 69 73 74 28 67 28 29 29 .2.........yield.3.>>>.list(g())
1e20 0a 5b 31 2c 20 32 2c 20 33 5d 0a 0a 4e 65 78 74 20 6f 6e 65 20 77 61 73 20 70 6f 73 74 65 64 20 .[1,.2,.3]..Next.one.was.posted.
1e40 74 6f 20 63 2e 6c 2e 70 79 2e 0a 0a 3e 3e 3e 20 64 65 66 20 67 63 6f 6d 62 28 78 2c 20 6b 29 3a to.c.l.py...>>>.def.gcomb(x,.k):
1e60 0a 2e 2e 2e 20 20 20 20 20 22 47 65 6e 65 72 61 74 65 20 61 6c 6c 20 63 6f 6d 62 69 6e 61 74 69 ........."Generate.all.combinati
1e80 6f 6e 73 20 6f 66 20 6b 20 65 6c 65 6d 65 6e 74 73 20 66 72 6f 6d 20 6c 69 73 74 20 78 2e 22 0a ons.of.k.elements.from.list.x.".
1ea0 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 69 66 20 6b 20 3e 20 6c 65 6e 28 78 29 3a 0a 2e 2e 2e 20 20 ............if.k.>.len(x):......
1ec0 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 2e 2e 2e 20 20 20 20 20 69 66 20 6b 20 3d 3d 20 30 3a .......return.........if.k.==.0:
1ee0 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 5b 5d 0a 2e 2e 2e 20 20 20 20 20 65 6c .............yield.[].........el
1f00 73 65 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 69 72 73 74 2c 20 72 65 73 74 20 3d 20 78 5b se:.............first,.rest.=.x[
1f20 30 5d 2c 20 78 5b 31 3a 5d 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 23 20 41 20 63 6f 6d 62 69 6e 0],.x[1:].............#.A.combin
1f40 61 74 69 6f 6e 20 64 6f 65 73 20 6f 72 20 64 6f 65 73 6e 27 74 20 63 6f 6e 74 61 69 6e 20 66 69 ation.does.or.doesn't.contain.fi
1f60 72 73 74 2e 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 23 20 49 66 20 69 74 20 64 6f 65 73 2c 20 74 rst..............#.If.it.does,.t
1f80 68 65 20 72 65 6d 61 69 6e 64 65 72 20 69 73 20 61 20 6b 2d 31 20 63 6f 6d 62 20 6f 66 20 72 65 he.remainder.is.a.k-1.comb.of.re
1fa0 73 74 2e 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 6f 72 20 63 20 69 6e 20 67 63 6f 6d 62 28 72 st..............for.c.in.gcomb(r
1fc0 65 73 74 2c 20 6b 2d 31 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 63 2e 69 6e 73 est,.k-1):.................c.ins
1fe0 65 72 74 28 30 2c 20 66 69 72 73 74 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 ert(0,.first).................yi
2000 65 6c 64 20 63 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 23 20 49 66 20 69 74 20 64 6f 65 73 6e 27 eld.c.............#.If.it.doesn'
2020 74 20 63 6f 6e 74 61 69 6e 20 66 69 72 73 74 2c 20 69 74 27 73 20 61 20 6b 20 63 6f 6d 62 20 6f t.contain.first,.it's.a.k.comb.o
2040 66 20 72 65 73 74 2e 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 6f 72 20 63 20 69 6e 20 67 63 6f f.rest..............for.c.in.gco
2060 6d 62 28 72 65 73 74 2c 20 6b 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 mb(rest,.k):.................yie
2080 6c 64 20 63 0a 0a 3e 3e 3e 20 73 65 71 20 3d 20 72 61 6e 67 65 28 31 2c 20 35 29 0a 3e 3e 3e 20 ld.c..>>>.seq.=.range(1,.5).>>>.
20a0 66 6f 72 20 6b 20 69 6e 20 72 61 6e 67 65 28 6c 65 6e 28 73 65 71 29 20 2b 20 32 29 3a 0a 2e 2e for.k.in.range(len(seq).+.2):...
20c0 2e 20 20 20 20 20 70 72 69 6e 74 20 22 25 64 2d 63 6f 6d 62 73 20 6f 66 20 25 73 3a 22 20 25 20 ......print."%d-combs.of.%s:".%.
20e0 28 6b 2c 20 73 65 71 29 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 63 20 69 6e 20 67 63 6f 6d 62 28 (k,.seq).........for.c.in.gcomb(
2100 73 65 71 2c 20 6b 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 20 20 20 22 seq,.k):.............print."..."
2120 2c 20 63 0a 30 2d 63 6f 6d 62 73 20 6f 66 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 3a 0a 20 20 20 ,.c.0-combs.of.[1,.2,.3,.4]:....
2140 20 5b 5d 0a 31 2d 63 6f 6d 62 73 20 6f 66 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 3a 0a 20 20 20 .[].1-combs.of.[1,.2,.3,.4]:....
2160 20 5b 31 5d 0a 20 20 20 20 5b 32 5d 0a 20 20 20 20 5b 33 5d 0a 20 20 20 20 5b 34 5d 0a 32 2d 63 .[1].....[2].....[3].....[4].2-c
2180 6f 6d 62 73 20 6f 66 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 3a 0a 20 20 20 20 5b 31 2c 20 32 5d ombs.of.[1,.2,.3,.4]:.....[1,.2]
21a0 0a 20 20 20 20 5b 31 2c 20 33 5d 0a 20 20 20 20 5b 31 2c 20 34 5d 0a 20 20 20 20 5b 32 2c 20 33 .....[1,.3].....[1,.4].....[2,.3
21c0 5d 0a 20 20 20 20 5b 32 2c 20 34 5d 0a 20 20 20 20 5b 33 2c 20 34 5d 0a 33 2d 63 6f 6d 62 73 20 ].....[2,.4].....[3,.4].3-combs.
21e0 6f 66 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 3a 0a 20 20 20 20 5b 31 2c 20 32 2c 20 33 5d 0a 20 of.[1,.2,.3,.4]:.....[1,.2,.3]..
2200 20 20 20 5b 31 2c 20 32 2c 20 34 5d 0a 20 20 20 20 5b 31 2c 20 33 2c 20 34 5d 0a 20 20 20 20 5b ...[1,.2,.4].....[1,.3,.4].....[
2220 32 2c 20 33 2c 20 34 5d 0a 34 2d 63 6f 6d 62 73 20 6f 66 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 2,.3,.4].4-combs.of.[1,.2,.3,.4]
2240 3a 0a 20 20 20 20 5b 31 2c 20 32 2c 20 33 2c 20 34 5d 0a 35 2d 63 6f 6d 62 73 20 6f 66 20 5b 31 :.....[1,.2,.3,.4].5-combs.of.[1
2260 2c 20 32 2c 20 33 2c 20 34 5d 3a 0a 0a 46 72 6f 6d 20 74 68 65 20 49 74 65 72 61 74 6f 72 73 20 ,.2,.3,.4]:..From.the.Iterators.
2280 6c 69 73 74 2c 20 61 62 6f 75 74 20 74 68 65 20 74 79 70 65 73 20 6f 66 20 74 68 65 73 65 20 74 list,.about.the.types.of.these.t
22a0 68 69 6e 67 73 2e 0a 0a 3e 3e 3e 20 64 65 66 20 67 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 hings...>>>.def.g():.........yie
22c0 6c 64 20 31 0a 2e 2e 2e 0a 3e 3e 3e 20 74 79 70 65 28 67 29 0a 3c 74 79 70 65 20 27 66 75 6e 63 ld.1.....>>>.type(g).<type.'func
22e0 74 69 6f 6e 27 3e 0a 3e 3e 3e 20 69 20 3d 20 67 28 29 0a 3e 3e 3e 20 74 79 70 65 28 69 29 0a 3c tion'>.>>>.i.=.g().>>>.type(i).<
2300 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 3e 3e 3e 20 5b 73 20 66 6f 72 20 73 20 69 type.'generator'>.>>>.[s.for.s.i
2320 6e 20 64 69 72 28 69 29 20 69 66 20 6e 6f 74 20 73 2e 73 74 61 72 74 73 77 69 74 68 28 27 5f 27 n.dir(i).if.not.s.startswith('_'
2340 29 5d 0a 5b 27 63 6c 6f 73 65 27 2c 20 27 67 69 5f 63 6f 64 65 27 2c 20 27 67 69 5f 66 72 61 6d )].['close',.'gi_code',.'gi_fram
2360 65 27 2c 20 27 67 69 5f 72 75 6e 6e 69 6e 67 27 2c 20 27 6e 65 78 74 27 2c 20 27 73 65 6e 64 27 e',.'gi_running',.'next',.'send'
2380 2c 20 27 74 68 72 6f 77 27 5d 0a 3e 3e 3e 20 66 72 6f 6d 20 74 65 73 74 2e 74 65 73 74 5f 73 75 ,.'throw'].>>>.from.test.test_su
23a0 70 70 6f 72 74 20 69 6d 70 6f 72 74 20 48 41 56 45 5f 44 4f 43 53 54 52 49 4e 47 53 0a 3e 3e 3e pport.import.HAVE_DOCSTRINGS.>>>
23c0 20 70 72 69 6e 74 28 69 2e 6e 65 78 74 2e 5f 5f 64 6f 63 5f 5f 20 69 66 20 48 41 56 45 5f 44 4f .print(i.next.__doc__.if.HAVE_DO
23e0 43 53 54 52 49 4e 47 53 20 65 6c 73 65 20 27 78 2e 6e 65 78 74 28 29 20 2d 3e 20 74 68 65 20 6e CSTRINGS.else.'x.next().->.the.n
2400 65 78 74 20 76 61 6c 75 65 2c 20 6f 72 20 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 6f ext.value,.or.raise.StopIteratio
2420 6e 27 29 0a 78 2e 6e 65 78 74 28 29 20 2d 3e 20 74 68 65 20 6e 65 78 74 20 76 61 6c 75 65 2c 20 n').x.next().->.the.next.value,.
2440 6f 72 20 72 61 69 73 65 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 3e 3e 3e 20 69 74 65 72 28 or.raise.StopIteration.>>>.iter(
2460 69 29 20 69 73 20 69 0a 54 72 75 65 0a 3e 3e 3e 20 69 6d 70 6f 72 74 20 74 79 70 65 73 0a 3e 3e i).is.i.True.>>>.import.types.>>
2480 3e 20 69 73 69 6e 73 74 61 6e 63 65 28 69 2c 20 74 79 70 65 73 2e 47 65 6e 65 72 61 74 6f 72 54 >.isinstance(i,.types.GeneratorT
24a0 79 70 65 29 0a 54 72 75 65 0a 0a 41 6e 64 20 6d 6f 72 65 2c 20 61 64 64 65 64 20 6c 61 74 65 72 ype).True..And.more,.added.later
24c0 2e 0a 0a 3e 3e 3e 20 69 2e 67 69 5f 72 75 6e 6e 69 6e 67 0a 30 0a 3e 3e 3e 20 74 79 70 65 28 69 ...>>>.i.gi_running.0.>>>.type(i
24e0 2e 67 69 5f 66 72 61 6d 65 29 0a 3c 74 79 70 65 20 27 66 72 61 6d 65 27 3e 0a 3e 3e 3e 20 69 2e .gi_frame).<type.'frame'>.>>>.i.
2500 67 69 5f 72 75 6e 6e 69 6e 67 20 3d 20 34 32 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 gi_running.=.42.Traceback.(most.
2520 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 54 79 70 65 45 72 72 recent.call.last):.......TypeErr
2540 6f 72 3a 20 72 65 61 64 6f 6e 6c 79 20 61 74 74 72 69 62 75 74 65 0a 3e 3e 3e 20 64 65 66 20 67 or:.readonly.attribute.>>>.def.g
2560 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 6d 65 2e 67 69 5f 72 75 6e 6e 69 6e 67 0a ():.........yield.me.gi_running.
2580 3e 3e 3e 20 6d 65 20 3d 20 67 28 29 0a 3e 3e 3e 20 6d 65 2e 67 69 5f 72 75 6e 6e 69 6e 67 0a 30 >>>.me.=.g().>>>.me.gi_running.0
25a0 0a 3e 3e 3e 20 6d 65 2e 6e 65 78 74 28 29 0a 31 0a 3e 3e 3e 20 6d 65 2e 67 69 5f 72 75 6e 6e 69 .>>>.me.next().1.>>>.me.gi_runni
25c0 6e 67 0a 30 0a 0a 41 20 63 6c 65 76 65 72 20 75 6e 69 6f 6e 2d 66 69 6e 64 20 69 6d 70 6c 65 6d ng.0..A.clever.union-find.implem
25e0 65 6e 74 61 74 69 6f 6e 20 66 72 6f 6d 20 63 2e 6c 2e 70 79 2c 20 64 75 65 20 74 6f 20 44 61 76 entation.from.c.l.py,.due.to.Dav
2600 69 64 20 45 70 70 73 74 65 69 6e 2e 0a 53 65 6e 74 3a 20 46 72 69 64 61 79 2c 20 4a 75 6e 65 20 id.Eppstein..Sent:.Friday,.June.
2620 32 39 2c 20 32 30 30 31 20 31 32 3a 31 36 20 50 4d 0a 54 6f 3a 20 70 79 74 68 6f 6e 2d 6c 69 73 29,.2001.12:16.PM.To:.python-lis
2640 74 40 70 79 74 68 6f 6e 2e 6f 72 67 0a 53 75 62 6a 65 63 74 3a 20 52 65 3a 20 50 45 50 20 32 35 t@python.org.Subject:.Re:.PEP.25
2660 35 3a 20 53 69 6d 70 6c 65 20 47 65 6e 65 72 61 74 6f 72 73 0a 0a 3e 3e 3e 20 63 6c 61 73 73 20 5:.Simple.Generators..>>>.class.
2680 64 69 73 6a 6f 69 6e 74 53 65 74 3a 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f disjointSet:.........def.__init_
26a0 5f 28 73 65 6c 66 2c 20 6e 61 6d 65 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e _(self,.name):.............self.
26c0 6e 61 6d 65 20 3d 20 6e 61 6d 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 70 61 72 name.=.name.............self.par
26e0 65 6e 74 20 3d 20 4e 6f 6e 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 67 65 6e 65 ent.=.None.............self.gene
2700 72 61 74 6f 72 20 3d 20 73 65 6c 66 2e 67 65 6e 65 72 61 74 65 28 29 0a 2e 2e 2e 0a 2e 2e 2e 20 rator.=.self.generate().........
2720 20 20 20 20 64 65 66 20 67 65 6e 65 72 61 74 65 28 73 65 6c 66 29 3a 0a 2e 2e 2e 20 20 20 20 20 ....def.generate(self):.........
2740 20 20 20 20 77 68 69 6c 65 20 6e 6f 74 20 73 65 6c 66 2e 70 61 72 65 6e 74 3a 0a 2e 2e 2e 20 20 ....while.not.self.parent:......
2760 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 73 65 6c 66 0a 2e 2e 2e 20 20 20 20 20 20 20 ...........yield.self...........
2780 20 20 66 6f 72 20 78 20 69 6e 20 73 65 6c 66 2e 70 61 72 65 6e 74 2e 67 65 6e 65 72 61 74 6f 72 ..for.x.in.self.parent.generator
27a0 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 78 0a 2e 2e 2e 0a 2e 2e :.................yield.x.......
27c0 2e 20 20 20 20 20 64 65 66 20 66 69 6e 64 28 73 65 6c 66 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 ......def.find(self):...........
27e0 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 67 65 6e 65 72 61 74 6f 72 2e 6e 65 78 74 28 29 0a 2e ..return.self.generator.next()..
2800 2e 2e 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 75 6e 69 6f 6e 28 73 65 6c 66 2c 20 70 61 72 65 6e ...........def.union(self,.paren
2820 74 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 73 65 6c 66 2e 70 61 72 65 6e 74 3a 0a t):.............if.self.parent:.
2840 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 56 61 6c 75 65 45 72 72 6f 72 ................raise.ValueError
2860 28 22 53 6f 72 72 79 2c 20 49 27 6d 20 6e 6f 74 20 61 20 72 6f 6f 74 21 22 29 0a 2e 2e 2e 20 20 ("Sorry,.I'm.not.a.root!")......
2880 20 20 20 20 20 20 20 73 65 6c 66 2e 70 61 72 65 6e 74 20 3d 20 70 61 72 65 6e 74 0a 2e 2e 2e 0a .......self.parent.=.parent.....
28a0 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 73 74 72 5f 5f 28 73 65 6c 66 29 3a 0a 2e 2e 2e 20 20 ........def.__str__(self):......
28c0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 6e 61 6d 65 0a 0a 3e 3e 3e 20 6e 61 6d .......return.self.name..>>>.nam
28e0 65 73 20 3d 20 22 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 22 0a 3e 3e 3e 20 73 65 74 73 20 3d 20 es.=."ABCDEFGHIJKLM".>>>.sets.=.
2900 5b 64 69 73 6a 6f 69 6e 74 53 65 74 28 6e 61 6d 65 29 20 66 6f 72 20 6e 61 6d 65 20 69 6e 20 6e [disjointSet(name).for.name.in.n
2920 61 6d 65 73 5d 0a 3e 3e 3e 20 72 6f 6f 74 73 20 3d 20 73 65 74 73 5b 3a 5d 0a 0a 3e 3e 3e 20 69 ames].>>>.roots.=.sets[:]..>>>.i
2940 6d 70 6f 72 74 20 72 61 6e 64 6f 6d 0a 3e 3e 3e 20 67 65 6e 20 3d 20 72 61 6e 64 6f 6d 2e 57 69 mport.random.>>>.gen.=.random.Wi
2960 63 68 6d 61 6e 6e 48 69 6c 6c 28 34 32 29 0a 3e 3e 3e 20 77 68 69 6c 65 20 31 3a 0a 2e 2e 2e 20 chmannHill(42).>>>.while.1:.....
2980 20 20 20 20 66 6f 72 20 73 20 69 6e 20 73 65 74 73 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 ....for.s.in.sets:.............p
29a0 72 69 6e 74 20 22 25 73 2d 3e 25 73 22 20 25 20 28 73 2c 20 73 2e 66 69 6e 64 28 29 29 2c 0a 2e rint."%s->%s".%.(s,.s.find()),..
29c0 2e 2e 20 20 20 20 20 70 72 69 6e 74 0a 2e 2e 2e 20 20 20 20 20 69 66 20 6c 65 6e 28 72 6f 6f 74 .......print.........if.len(root
29e0 73 29 20 3e 20 31 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 31 20 3d 20 67 65 6e 2e 63 68 6f s).>.1:.............s1.=.gen.cho
2a00 69 63 65 28 72 6f 6f 74 73 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 6f 6f 74 73 2e 72 65 6d ice(roots).............roots.rem
2a20 6f 76 65 28 73 31 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 32 20 3d 20 67 65 6e 2e 63 68 6f ove(s1).............s2.=.gen.cho
2a40 69 63 65 28 72 6f 6f 74 73 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 31 2e 75 6e 69 6f 6e 28 ice(roots).............s1.union(
2a60 73 32 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 6d 65 72 67 65 64 22 2c 20 s2).............print."merged",.
2a80 73 31 2c 20 22 69 6e 74 6f 22 2c 20 73 32 0a 2e 2e 2e 20 20 20 20 20 65 6c 73 65 3a 0a 2e 2e 2e s1,."into",.s2.........else:....
2aa0 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0a 41 2d 3e 41 20 42 2d 3e 42 20 43 2d 3e 43 20 44 2d .........break.A->A.B->B.C->C.D-
2ac0 3e 44 20 45 2d 3e 45 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 48 20 49 2d 3e 49 20 4a 2d 3e 4a >D.E->E.F->F.G->G.H->H.I->I.J->J
2ae0 20 4b 2d 3e 4b 20 4c 2d 3e 4c 20 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 44 20 69 6e 74 6f 20 47 0a .K->K.L->L.M->M.merged.D.into.G.
2b00 41 2d 3e 41 20 42 2d 3e 42 20 43 2d 3e 43 20 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e 46 20 47 2d A->A.B->B.C->C.D->G.E->E.F->F.G-
2b20 3e 47 20 48 2d 3e 48 20 49 2d 3e 49 20 4a 2d 3e 4a 20 4b 2d 3e 4b 20 4c 2d 3e 4c 20 4d 2d 3e 4d >G.H->H.I->I.J->J.K->K.L->L.M->M
2b40 0a 6d 65 72 67 65 64 20 43 20 69 6e 74 6f 20 46 0a 41 2d 3e 41 20 42 2d 3e 42 20 43 2d 3e 46 20 .merged.C.into.F.A->A.B->B.C->F.
2b60 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 48 20 49 2d 3e 49 20 4a 2d D->G.E->E.F->F.G->G.H->H.I->I.J-
2b80 3e 4a 20 4b 2d 3e 4b 20 4c 2d 3e 4c 20 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 4c 20 69 6e 74 6f 20 >J.K->K.L->L.M->M.merged.L.into.
2ba0 41 0a 41 2d 3e 41 20 42 2d 3e 42 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e 46 20 A.A->A.B->B.C->F.D->G.E->E.F->F.
2bc0 47 2d 3e 47 20 48 2d 3e 48 20 49 2d 3e 49 20 4a 2d 3e 4a 20 4b 2d 3e 4b 20 4c 2d 3e 41 20 4d 2d G->G.H->H.I->I.J->J.K->K.L->A.M-
2be0 3e 4d 0a 6d 65 72 67 65 64 20 48 20 69 6e 74 6f 20 45 0a 41 2d 3e 41 20 42 2d 3e 42 20 43 2d 3e >M.merged.H.into.E.A->A.B->B.C->
2c00 46 20 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 45 20 49 2d 3e 49 20 F.D->G.E->E.F->F.G->G.H->E.I->I.
2c20 4a 2d 3e 4a 20 4b 2d 3e 4b 20 4c 2d 3e 41 20 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 42 20 69 6e 74 J->J.K->K.L->A.M->M.merged.B.int
2c40 6f 20 45 0a 41 2d 3e 41 20 42 2d 3e 45 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e o.E.A->A.B->E.C->F.D->G.E->E.F->
2c60 46 20 47 2d 3e 47 20 48 2d 3e 45 20 49 2d 3e 49 20 4a 2d 3e 4a 20 4b 2d 3e 4b 20 4c 2d 3e 41 20 F.G->G.H->E.I->I.J->J.K->K.L->A.
2c80 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 4a 20 69 6e 74 6f 20 47 0a 41 2d 3e 41 20 42 2d 3e 45 20 43 M->M.merged.J.into.G.A->A.B->E.C
2ca0 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 45 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 45 20 49 2d 3e ->F.D->G.E->E.F->F.G->G.H->E.I->
2cc0 49 20 4a 2d 3e 47 20 4b 2d 3e 4b 20 4c 2d 3e 41 20 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 45 20 69 I.J->G.K->K.L->A.M->M.merged.E.i
2ce0 6e 74 6f 20 47 0a 41 2d 3e 41 20 42 2d 3e 47 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 47 20 46 nto.G.A->A.B->G.C->F.D->G.E->G.F
2d00 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 47 20 49 2d 3e 49 20 4a 2d 3e 47 20 4b 2d 3e 4b 20 4c 2d 3e ->F.G->G.H->G.I->I.J->G.K->K.L->
2d20 41 20 4d 2d 3e 4d 0a 6d 65 72 67 65 64 20 4d 20 69 6e 74 6f 20 47 0a 41 2d 3e 41 20 42 2d 3e 47 A.M->M.merged.M.into.G.A->A.B->G
2d40 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 47 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 47 20 49 .C->F.D->G.E->G.F->F.G->G.H->G.I
2d60 2d 3e 49 20 4a 2d 3e 47 20 4b 2d 3e 4b 20 4c 2d 3e 41 20 4d 2d 3e 47 0a 6d 65 72 67 65 64 20 49 ->I.J->G.K->K.L->A.M->G.merged.I
2d80 20 69 6e 74 6f 20 4b 0a 41 2d 3e 41 20 42 2d 3e 47 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 47 .into.K.A->A.B->G.C->F.D->G.E->G
2da0 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 47 20 49 2d 3e 4b 20 4a 2d 3e 47 20 4b 2d 3e 4b 20 4c .F->F.G->G.H->G.I->K.J->G.K->K.L
2dc0 2d 3e 41 20 4d 2d 3e 47 0a 6d 65 72 67 65 64 20 4b 20 69 6e 74 6f 20 41 0a 41 2d 3e 41 20 42 2d ->A.M->G.merged.K.into.A.A->A.B-
2de0 3e 47 20 43 2d 3e 46 20 44 2d 3e 47 20 45 2d 3e 47 20 46 2d 3e 46 20 47 2d 3e 47 20 48 2d 3e 47 >G.C->F.D->G.E->G.F->F.G->G.H->G
2e00 20 49 2d 3e 41 20 4a 2d 3e 47 20 4b 2d 3e 41 20 4c 2d 3e 41 20 4d 2d 3e 47 0a 6d 65 72 67 65 64 .I->A.J->G.K->A.L->A.M->G.merged
2e20 20 46 20 69 6e 74 6f 20 41 0a 41 2d 3e 41 20 42 2d 3e 47 20 43 2d 3e 41 20 44 2d 3e 47 20 45 2d .F.into.A.A->A.B->G.C->A.D->G.E-
2e40 3e 47 20 46 2d 3e 41 20 47 2d 3e 47 20 48 2d 3e 47 20 49 2d 3e 41 20 4a 2d 3e 47 20 4b 2d 3e 41 >G.F->A.G->G.H->G.I->A.J->G.K->A
2e60 20 4c 2d 3e 41 20 4d 2d 3e 47 0a 6d 65 72 67 65 64 20 41 20 69 6e 74 6f 20 47 0a 41 2d 3e 47 20 .L->A.M->G.merged.A.into.G.A->G.
2e80 42 2d 3e 47 20 43 2d 3e 47 20 44 2d 3e 47 20 45 2d 3e 47 20 46 2d 3e 47 20 47 2d 3e 47 20 48 2d B->G.C->G.D->G.E->G.F->G.G->G.H-
2ea0 3e 47 20 49 2d 3e 47 20 4a 2d 3e 47 20 4b 2d 3e 47 20 4c 2d 3e 47 20 4d 2d 3e 47 0a 0a 73 aa 1e >G.I->G.J->G.K->G.L->G.M->G..s..
2ec0 00 00 0a 0a 42 75 69 6c 64 20 75 70 20 74 6f 20 61 20 72 65 63 75 72 73 69 76 65 20 53 69 65 76 ....Build.up.to.a.recursive.Siev
2ee0 65 20 6f 66 20 45 72 61 74 6f 73 74 68 65 6e 65 73 20 67 65 6e 65 72 61 74 6f 72 2e 0a 0a 3e 3e e.of.Eratosthenes.generator...>>
2f00 3e 20 64 65 66 20 66 69 72 73 74 6e 28 67 2c 20 6e 29 3a 0a 2e 2e 2e 20 20 20 20 20 72 65 74 75 >.def.firstn(g,.n):.........retu
2f20 72 6e 20 5b 67 2e 6e 65 78 74 28 29 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 6e 29 5d 0a rn.[g.next().for.i.in.range(n)].
2f40 0a 3e 3e 3e 20 64 65 66 20 69 6e 74 73 66 72 6f 6d 28 69 29 3a 0a 2e 2e 2e 20 20 20 20 20 77 68 .>>>.def.intsfrom(i):.........wh
2f60 69 6c 65 20 31 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 69 0a 2e 2e 2e 20 20 ile.1:.............yield.i......
2f80 20 20 20 20 20 20 20 69 20 2b 3d 20 31 0a 0a 3e 3e 3e 20 66 69 72 73 74 6e 28 69 6e 74 73 66 72 .......i.+=.1..>>>.firstn(intsfr
2fa0 6f 6d 28 35 29 2c 20 37 29 0a 5b 35 2c 20 36 2c 20 37 2c 20 38 2c 20 39 2c 20 31 30 2c 20 31 31 om(5),.7).[5,.6,.7,.8,.9,.10,.11
2fc0 5d 0a 0a 3e 3e 3e 20 64 65 66 20 65 78 63 6c 75 64 65 5f 6d 75 6c 74 69 70 6c 65 73 28 6e 2c 20 ]..>>>.def.exclude_multiples(n,.
2fe0 69 6e 74 73 29 3a 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 69 6e 74 73 3a 0a 2e 2e ints):.........for.i.in.ints:...
3000 2e 20 20 20 20 20 20 20 20 20 69 66 20 69 20 25 20 6e 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 ..........if.i.%.n:.............
3020 20 20 20 20 79 69 65 6c 64 20 69 0a 0a 3e 3e 3e 20 66 69 72 73 74 6e 28 65 78 63 6c 75 64 65 5f ....yield.i..>>>.firstn(exclude_
3040 6d 75 6c 74 69 70 6c 65 73 28 33 2c 20 69 6e 74 73 66 72 6f 6d 28 31 29 29 2c 20 36 29 0a 5b 31 multiples(3,.intsfrom(1)),.6).[1
3060 2c 20 32 2c 20 34 2c 20 35 2c 20 37 2c 20 38 5d 0a 0a 3e 3e 3e 20 64 65 66 20 73 69 65 76 65 28 ,.2,.4,.5,.7,.8]..>>>.def.sieve(
3080 69 6e 74 73 29 3a 0a 2e 2e 2e 20 20 20 20 20 70 72 69 6d 65 20 3d 20 69 6e 74 73 2e 6e 65 78 74 ints):.........prime.=.ints.next
30a0 28 29 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 70 72 69 6d 65 0a 2e 2e 2e 20 20 20 20 20 6e ().........yield.prime.........n
30c0 6f 74 5f 64 69 76 69 73 69 62 6c 65 5f 62 79 5f 70 72 69 6d 65 20 3d 20 65 78 63 6c 75 64 65 5f ot_divisible_by_prime.=.exclude_
30e0 6d 75 6c 74 69 70 6c 65 73 28 70 72 69 6d 65 2c 20 69 6e 74 73 29 0a 2e 2e 2e 20 20 20 20 20 66 multiples(prime,.ints).........f
3100 6f 72 20 70 20 69 6e 20 73 69 65 76 65 28 6e 6f 74 5f 64 69 76 69 73 69 62 6c 65 5f 62 79 5f 70 or.p.in.sieve(not_divisible_by_p
3120 72 69 6d 65 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 70 0a 0a 3e 3e 3e 20 rime):.............yield.p..>>>.
3140 70 72 69 6d 65 73 20 3d 20 73 69 65 76 65 28 69 6e 74 73 66 72 6f 6d 28 32 29 29 0a 3e 3e 3e 20 primes.=.sieve(intsfrom(2)).>>>.
3160 66 69 72 73 74 6e 28 70 72 69 6d 65 73 2c 20 32 30 29 0a 5b 32 2c 20 33 2c 20 35 2c 20 37 2c 20 firstn(primes,.20).[2,.3,.5,.7,.
3180 31 31 2c 20 31 33 2c 20 31 37 2c 20 31 39 2c 20 32 33 2c 20 32 39 2c 20 33 31 2c 20 33 37 2c 20 11,.13,.17,.19,.23,.29,.31,.37,.
31a0 34 31 2c 20 34 33 2c 20 34 37 2c 20 35 33 2c 20 35 39 2c 20 36 31 2c 20 36 37 2c 20 37 31 5d 0a 41,.43,.47,.53,.59,.61,.67,.71].
31c0 0a 0a 41 6e 6f 74 68 65 72 20 66 61 6d 6f 75 73 20 70 72 6f 62 6c 65 6d 3a 20 20 67 65 6e 65 72 ..Another.famous.problem:..gener
31e0 61 74 65 20 61 6c 6c 20 69 6e 74 65 67 65 72 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 20 20 ate.all.integers.of.the.form....
3200 20 32 2a 2a 69 20 2a 20 33 2a 2a 6a 20 20 2a 20 35 2a 2a 6b 0a 69 6e 20 69 6e 63 72 65 61 73 69 .2**i.*.3**j..*.5**k.in.increasi
3220 6e 67 20 6f 72 64 65 72 2c 20 77 68 65 72 65 20 69 2c 6a 2c 6b 20 3e 3d 20 30 2e 20 20 54 72 69 ng.order,.where.i,j,k.>=.0...Tri
3240 63 6b 69 65 72 20 74 68 61 6e 20 69 74 20 6d 61 79 20 6c 6f 6f 6b 20 61 74 20 66 69 72 73 74 21 ckier.than.it.may.look.at.first!
3260 0a 54 72 79 20 77 72 69 74 69 6e 67 20 69 74 20 77 69 74 68 6f 75 74 20 67 65 6e 65 72 61 74 6f .Try.writing.it.without.generato
3280 72 73 2c 20 61 6e 64 20 63 6f 72 72 65 63 74 6c 79 2c 20 61 6e 64 20 77 69 74 68 6f 75 74 20 67 rs,.and.correctly,.and.without.g
32a0 65 6e 65 72 61 74 69 6e 67 0a 33 20 69 6e 74 65 72 6e 61 6c 20 72 65 73 75 6c 74 73 20 66 6f 72 enerating.3.internal.results.for
32c0 20 65 61 63 68 20 72 65 73 75 6c 74 20 6f 75 74 70 75 74 2e 0a 0a 3e 3e 3e 20 64 65 66 20 74 69 .each.result.output...>>>.def.ti
32e0 6d 65 73 28 6e 2c 20 67 29 3a 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 67 3a 0a 2e mes(n,.g):.........for.i.in.g:..
3300 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 6e 20 2a 20 69 0a 3e 3e 3e 20 66 69 72 73 74 ...........yield.n.*.i.>>>.first
3320 6e 28 74 69 6d 65 73 28 31 30 2c 20 69 6e 74 73 66 72 6f 6d 28 31 29 29 2c 20 31 30 29 0a 5b 31 n(times(10,.intsfrom(1)),.10).[1
3340 30 2c 20 32 30 2c 20 33 30 2c 20 34 30 2c 20 35 30 2c 20 36 30 2c 20 37 30 2c 20 38 30 2c 20 39 0,.20,.30,.40,.50,.60,.70,.80,.9
3360 30 2c 20 31 30 30 5d 0a 0a 3e 3e 3e 20 64 65 66 20 6d 65 72 67 65 28 67 2c 20 68 29 3a 0a 2e 2e 0,.100]..>>>.def.merge(g,.h):...
3380 2e 20 20 20 20 20 6e 67 20 3d 20 67 2e 6e 65 78 74 28 29 0a 2e 2e 2e 20 20 20 20 20 6e 68 20 3d ......ng.=.g.next().........nh.=
33a0 20 68 2e 6e 65 78 74 28 29 0a 2e 2e 2e 20 20 20 20 20 77 68 69 6c 65 20 31 3a 0a 2e 2e 2e 20 20 .h.next().........while.1:......
33c0 20 20 20 20 20 20 20 69 66 20 6e 67 20 3c 20 6e 68 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 .......if.ng.<.nh:..............
33e0 20 20 20 79 69 65 6c 64 20 6e 67 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 67 20 3d ...yield.ng.................ng.=
3400 20 67 2e 6e 65 78 74 28 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 65 6c 69 66 20 6e 67 20 3e 20 .g.next().............elif.ng.>.
3420 6e 68 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 6e 68 0a 2e 2e 2e nh:.................yield.nh....
3440 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 68 20 3d 20 68 2e 6e 65 78 74 28 29 0a 2e 2e 2e 20 20 .............nh.=.h.next()......
3460 20 20 20 20 20 20 20 65 6c 73 65 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 .......else:.................yie
3480 6c 64 20 6e 67 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 67 20 3d 20 67 2e 6e 65 78 ld.ng.................ng.=.g.nex
34a0 74 28 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 68 20 3d 20 68 2e 6e 65 78 74 28 t().................nh.=.h.next(
34c0 29 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 77 6f 72 6b 73 2c 20 62 75 74 20 69 73 20 64 )..The.following.works,.but.is.d
34e0 6f 69 6e 67 20 61 20 77 68 61 6c 65 20 6f 66 20 61 20 6c 6f 74 20 6f 66 20 72 65 64 75 6e 64 61 oing.a.whale.of.a.lot.of.redunda
3500 6e 74 20 77 6f 72 6b 20 2d 2d 0a 69 74 27 73 20 6e 6f 74 20 63 6c 65 61 72 20 68 6f 77 20 74 6f nt.work.--.it's.not.clear.how.to
3520 20 67 65 74 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 75 73 65 73 20 6f 66 20 6d 32 33 35 20 74 .get.the.internal.uses.of.m235.t
3540 6f 20 73 68 61 72 65 20 61 20 73 69 6e 67 6c 65 0a 67 65 6e 65 72 61 74 6f 72 2e 20 20 4e 6f 74 o.share.a.single.generator...Not
3560 65 20 74 68 61 74 20 6d 65 5f 74 69 6d 65 73 32 20 28 65 74 63 29 20 65 61 63 68 20 6e 65 65 64 e.that.me_times2.(etc).each.need
3580 20 74 6f 20 73 65 65 20 65 76 65 72 79 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 0a 72 65 73 .to.see.every.element.in.the.res
35a0 75 6c 74 20 73 65 71 75 65 6e 63 65 2e 20 20 53 6f 20 74 68 69 73 20 69 73 20 61 6e 20 65 78 61 ult.sequence...So.this.is.an.exa
35c0 6d 70 6c 65 20 77 68 65 72 65 20 6c 61 7a 79 20 6c 69 73 74 73 20 61 72 65 20 6d 6f 72 65 20 6e mple.where.lazy.lists.are.more.n
35e0 61 74 75 72 61 6c 0a 28 79 6f 75 20 63 61 6e 20 6c 6f 6f 6b 20 61 74 20 74 68 65 20 68 65 61 64 atural.(you.can.look.at.the.head
3600 20 6f 66 20 61 20 6c 61 7a 79 20 6c 69 73 74 20 61 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 74 69 .of.a.lazy.list.any.number.of.ti
3620 6d 65 73 29 2e 0a 0a 3e 3e 3e 20 64 65 66 20 6d 32 33 35 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 mes)...>>>.def.m235():.........y
3640 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 20 6d 65 5f 74 69 6d 65 73 32 20 3d 20 74 69 6d 65 73 ield.1.........me_times2.=.times
3660 28 32 2c 20 6d 32 33 35 28 29 29 0a 2e 2e 2e 20 20 20 20 20 6d 65 5f 74 69 6d 65 73 33 20 3d 20 (2,.m235()).........me_times3.=.
3680 74 69 6d 65 73 28 33 2c 20 6d 32 33 35 28 29 29 0a 2e 2e 2e 20 20 20 20 20 6d 65 5f 74 69 6d 65 times(3,.m235()).........me_time
36a0 73 35 20 3d 20 74 69 6d 65 73 28 35 2c 20 6d 32 33 35 28 29 29 0a 2e 2e 2e 20 20 20 20 20 66 6f s5.=.times(5,.m235()).........fo
36c0 72 20 69 20 69 6e 20 6d 65 72 67 65 28 6d 65 72 67 65 28 6d 65 5f 74 69 6d 65 73 32 2c 0a 2e 2e r.i.in.merge(merge(me_times2,...
36e0 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 5f 74 69 ...........................me_ti
3700 6d 65 73 33 29 2c 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 mes3),........................me
3720 5f 74 69 6d 65 73 35 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 69 0a 0a 44 _times5):.............yield.i..D
3740 6f 6e 27 74 20 70 72 69 6e 74 20 22 74 6f 6f 20 6d 61 6e 79 22 20 6f 66 20 74 68 65 73 65 20 2d on't.print."too.many".of.these.-
3760 2d 20 74 68 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 61 62 6f 76 65 20 69 73 20 65 78 -.the.implementation.above.is.ex
3780 74 72 65 6d 65 6c 79 0a 69 6e 65 66 66 69 63 69 65 6e 74 3a 20 20 65 61 63 68 20 63 61 6c 6c 20 tremely.inefficient:..each.call.
37a0 6f 66 20 6d 32 33 35 28 29 20 6c 65 61 64 73 20 74 6f 20 33 20 72 65 63 75 72 73 69 76 65 20 63 of.m235().leads.to.3.recursive.c
37c0 61 6c 6c 73 2c 20 61 6e 64 20 69 6e 0a 74 75 72 6e 20 65 61 63 68 20 6f 66 20 74 68 6f 73 65 20 alls,.and.in.turn.each.of.those.
37e0 33 20 6d 6f 72 65 2c 20 61 6e 64 20 73 6f 20 6f 6e 2c 20 61 6e 64 20 73 6f 20 6f 6e 2c 20 75 6e 3.more,.and.so.on,.and.so.on,.un
3800 74 69 6c 20 77 65 27 76 65 20 64 65 73 63 65 6e 64 65 64 0a 65 6e 6f 75 67 68 20 6c 65 76 65 6c til.we've.descended.enough.level
3820 73 20 74 6f 20 73 61 74 69 73 66 79 20 74 68 65 20 70 72 69 6e 74 20 73 74 6d 74 73 2e 20 20 56 s.to.satisfy.the.print.stmts...V
3840 65 72 79 20 6f 64 64 3a 20 20 77 68 65 6e 20 49 20 70 72 69 6e 74 65 64 20 35 0a 6c 69 6e 65 73 ery.odd:..when.I.printed.5.lines
3860 20 6f 66 20 72 65 73 75 6c 74 73 20 62 65 6c 6f 77 2c 20 74 68 69 73 20 6d 61 6e 61 67 65 64 20 .of.results.below,.this.managed.
3880 74 6f 20 73 63 72 65 77 20 75 70 20 57 69 6e 39 38 27 73 20 6d 61 6c 6c 6f 63 20 69 6e 20 22 74 to.screw.up.Win98's.malloc.in."t
38a0 68 65 0a 75 73 75 61 6c 22 20 77 61 79 2c 20 69 2e 65 2e 20 74 68 65 20 68 65 61 70 20 67 72 65 he.usual".way,.i.e..the.heap.gre
38c0 77 20 6f 76 65 72 20 34 4d 62 20 73 6f 20 57 69 6e 39 38 20 73 74 61 72 74 65 64 20 66 72 61 67 w.over.4Mb.so.Win98.started.frag
38e0 6d 65 6e 74 69 6e 67 0a 61 64 64 72 65 73 73 20 73 70 61 63 65 2c 20 61 6e 64 20 69 74 20 2a 6c menting.address.space,.and.it.*l
3900 6f 6f 6b 65 64 2a 20 6c 69 6b 65 20 61 20 76 65 72 79 20 73 6c 6f 77 20 6c 65 61 6b 2e 0a 0a 3e ooked*.like.a.very.slow.leak...>
3920 3e 3e 20 72 65 73 75 6c 74 20 3d 20 6d 32 33 35 28 29 0a 3e 3e 3e 20 66 6f 72 20 69 20 69 6e 20 >>.result.=.m235().>>>.for.i.in.
3940 72 61 6e 67 65 28 33 29 3a 0a 2e 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 66 69 72 73 74 6e 28 72 range(3):.........print.firstn(r
3960 65 73 75 6c 74 2c 20 31 35 29 0a 5b 31 2c 20 32 2c 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 38 2c esult,.15).[1,.2,.3,.4,.5,.6,.8,
3980 20 39 2c 20 31 30 2c 20 31 32 2c 20 31 35 2c 20 31 36 2c 20 31 38 2c 20 32 30 2c 20 32 34 5d 0a .9,.10,.12,.15,.16,.18,.20,.24].
39a0 5b 32 35 2c 20 32 37 2c 20 33 30 2c 20 33 32 2c 20 33 36 2c 20 34 30 2c 20 34 35 2c 20 34 38 2c [25,.27,.30,.32,.36,.40,.45,.48,
39c0 20 35 30 2c 20 35 34 2c 20 36 30 2c 20 36 34 2c 20 37 32 2c 20 37 35 2c 20 38 30 5d 0a 5b 38 31 .50,.54,.60,.64,.72,.75,.80].[81
39e0 2c 20 39 30 2c 20 39 36 2c 20 31 30 30 2c 20 31 30 38 2c 20 31 32 30 2c 20 31 32 35 2c 20 31 32 ,.90,.96,.100,.108,.120,.125,.12
3a00 38 2c 20 31 33 35 2c 20 31 34 34 2c 20 31 35 30 2c 20 31 36 30 2c 20 31 36 32 2c 20 31 38 30 2c 8,.135,.144,.150,.160,.162,.180,
3a20 20 31 39 32 5d 0a 0a 48 65 68 2e 20 20 48 65 72 65 27 73 20 6f 6e 65 20 77 61 79 20 74 6f 20 67 .192]..Heh...Here's.one.way.to.g
3a40 65 74 20 61 20 73 68 61 72 65 64 20 6c 69 73 74 2c 20 63 6f 6d 70 6c 65 74 65 20 77 69 74 68 20 et.a.shared.list,.complete.with.
3a60 61 6e 20 65 78 63 72 75 63 69 61 74 69 6e 67 0a 6e 61 6d 65 73 70 61 63 65 20 72 65 6e 61 6d 69 an.excruciating.namespace.renami
3a80 6e 67 20 74 72 69 63 6b 2e 20 20 54 68 65 20 2a 70 72 65 74 74 79 2a 20 70 61 72 74 20 69 73 20 ng.trick...The.*pretty*.part.is.
3aa0 74 68 61 74 20 74 68 65 20 74 69 6d 65 73 28 29 20 61 6e 64 20 6d 65 72 67 65 28 29 0a 66 75 6e that.the.times().and.merge().fun
3ac0 63 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 72 65 75 73 65 64 20 61 73 2d 69 73 2c 20 62 65 63 61 ctions.can.be.reused.as-is,.beca
3ae0 75 73 65 20 74 68 65 79 20 6f 6e 6c 79 20 61 73 73 75 6d 65 20 74 68 65 69 72 20 73 74 72 65 61 use.they.only.assume.their.strea
3b00 6d 0a 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 69 74 65 72 61 62 6c 65 20 2d 2d 20 61 20 4c 61 m.arguments.are.iterable.--.a.La
3b20 7a 79 4c 69 73 74 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 61 20 67 65 6e 65 72 61 74 6f zyList.is.the.same.as.a.generato
3b40 72 20 74 6f 20 74 69 6d 65 73 28 29 2e 0a 0a 3e 3e 3e 20 63 6c 61 73 73 20 4c 61 7a 79 4c 69 73 r.to.times()...>>>.class.LazyLis
3b60 74 3a 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 6c 66 2c 20 67 29 t:.........def.__init__(self,.g)
3b80 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 73 6f 66 61 72 20 3d 20 5b 5d 0a 2e 2e :.............self.sofar.=.[]...
3ba0 2e 20 20 20 20 20 20 20 20 20 73 65 6c 66 2e 66 65 74 63 68 20 3d 20 67 2e 6e 65 78 74 0a 2e 2e ..........self.fetch.=.g.next...
3bc0 2e 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 5f 67 65 74 69 74 65 6d 5f 5f 28 73 65 6c 66 2c 20 ..........def.__getitem__(self,.
3be0 69 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 6f 66 61 72 2c 20 66 65 74 63 68 20 3d 20 73 i):.............sofar,.fetch.=.s
3c00 65 6c 66 2e 73 6f 66 61 72 2c 20 73 65 6c 66 2e 66 65 74 63 68 0a 2e 2e 2e 20 20 20 20 20 20 20 elf.sofar,.self.fetch...........
3c20 20 20 77 68 69 6c 65 20 69 20 3e 3d 20 6c 65 6e 28 73 6f 66 61 72 29 3a 0a 2e 2e 2e 20 20 20 20 ..while.i.>=.len(sofar):........
3c40 20 20 20 20 20 20 20 20 20 73 6f 66 61 72 2e 61 70 70 65 6e 64 28 66 65 74 63 68 28 29 29 0a 2e .........sofar.append(fetch())..
3c60 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 6f 66 61 72 5b 69 5d 0a 0a 3e 3e 3e 20 ...........return.sofar[i]..>>>.
3c80 64 65 66 20 6d 32 33 35 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 def.m235():.........yield.1.....
3ca0 20 20 20 20 23 20 47 61 63 6b 3a 20 20 6d 32 33 35 20 62 65 6c 6f 77 20 61 63 74 75 61 6c 6c 79 ....#.Gack:..m235.below.actually
3cc0 20 72 65 66 65 72 73 20 74 6f 20 61 20 4c 61 7a 79 4c 69 73 74 2e 0a 2e 2e 2e 20 20 20 20 20 6d .refers.to.a.LazyList..........m
3ce0 65 5f 74 69 6d 65 73 32 20 3d 20 74 69 6d 65 73 28 32 2c 20 6d 32 33 35 29 0a 2e 2e 2e 20 20 20 e_times2.=.times(2,.m235).......
3d00 20 20 6d 65 5f 74 69 6d 65 73 33 20 3d 20 74 69 6d 65 73 28 33 2c 20 6d 32 33 35 29 0a 2e 2e 2e ..me_times3.=.times(3,.m235)....
3d20 20 20 20 20 20 6d 65 5f 74 69 6d 65 73 35 20 3d 20 74 69 6d 65 73 28 35 2c 20 6d 32 33 35 29 0a .....me_times5.=.times(5,.m235).
3d40 2e 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 6d 65 72 67 65 28 6d 65 72 67 65 28 6d 65 5f ........for.i.in.merge(merge(me_
3d60 74 69 6d 65 73 32 2c 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 times2,.........................
3d80 20 20 20 20 20 6d 65 5f 74 69 6d 65 73 33 29 2c 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 .....me_times3),................
3da0 20 20 20 20 20 20 20 20 6d 65 5f 74 69 6d 65 73 35 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 ........me_times5):.............
3dc0 79 69 65 6c 64 20 69 0a 0a 50 72 69 6e 74 20 61 73 20 6d 61 6e 79 20 6f 66 20 74 68 65 73 65 20 yield.i..Print.as.many.of.these.
3de0 61 73 20 79 6f 75 20 6c 69 6b 65 20 2d 2d 20 2a 74 68 69 73 2a 20 69 6d 70 6c 65 6d 65 6e 74 61 as.you.like.--.*this*.implementa
3e00 74 69 6f 6e 20 69 73 20 6d 65 6d 6f 72 79 2d 0a 65 66 66 69 63 69 65 6e 74 2e 0a 0a 3e 3e 3e 20 tion.is.memory-.efficient...>>>.
3e20 6d 32 33 35 20 3d 20 4c 61 7a 79 4c 69 73 74 28 6d 32 33 35 28 29 29 0a 3e 3e 3e 20 66 6f 72 20 m235.=.LazyList(m235()).>>>.for.
3e40 69 20 69 6e 20 72 61 6e 67 65 28 35 29 3a 0a 2e 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 5b 6d 32 i.in.range(5):.........print.[m2
3e60 33 35 5b 6a 5d 20 66 6f 72 20 6a 20 69 6e 20 72 61 6e 67 65 28 31 35 2a 69 2c 20 31 35 2a 28 69 35[j].for.j.in.range(15*i,.15*(i
3e80 2b 31 29 29 5d 0a 5b 31 2c 20 32 2c 20 33 2c 20 34 2c 20 35 2c 20 36 2c 20 38 2c 20 39 2c 20 31 +1))].[1,.2,.3,.4,.5,.6,.8,.9,.1
3ea0 30 2c 20 31 32 2c 20 31 35 2c 20 31 36 2c 20 31 38 2c 20 32 30 2c 20 32 34 5d 0a 5b 32 35 2c 20 0,.12,.15,.16,.18,.20,.24].[25,.
3ec0 32 37 2c 20 33 30 2c 20 33 32 2c 20 33 36 2c 20 34 30 2c 20 34 35 2c 20 34 38 2c 20 35 30 2c 20 27,.30,.32,.36,.40,.45,.48,.50,.
3ee0 35 34 2c 20 36 30 2c 20 36 34 2c 20 37 32 2c 20 37 35 2c 20 38 30 5d 0a 5b 38 31 2c 20 39 30 2c 54,.60,.64,.72,.75,.80].[81,.90,
3f00 20 39 36 2c 20 31 30 30 2c 20 31 30 38 2c 20 31 32 30 2c 20 31 32 35 2c 20 31 32 38 2c 20 31 33 .96,.100,.108,.120,.125,.128,.13
3f20 35 2c 20 31 34 34 2c 20 31 35 30 2c 20 31 36 30 2c 20 31 36 32 2c 20 31 38 30 2c 20 31 39 32 5d 5,.144,.150,.160,.162,.180,.192]
3f40 0a 5b 32 30 30 2c 20 32 31 36 2c 20 32 32 35 2c 20 32 34 30 2c 20 32 34 33 2c 20 32 35 30 2c 20 .[200,.216,.225,.240,.243,.250,.
3f60 32 35 36 2c 20 32 37 30 2c 20 32 38 38 2c 20 33 30 30 2c 20 33 32 30 2c 20 33 32 34 2c 20 33 36 256,.270,.288,.300,.320,.324,.36
3f80 30 2c 20 33 37 35 2c 20 33 38 34 5d 0a 5b 34 30 30 2c 20 34 30 35 2c 20 34 33 32 2c 20 34 35 30 0,.375,.384].[400,.405,.432,.450
3fa0 2c 20 34 38 30 2c 20 34 38 36 2c 20 35 30 30 2c 20 35 31 32 2c 20 35 34 30 2c 20 35 37 36 2c 20 ,.480,.486,.500,.512,.540,.576,.
3fc0 36 30 30 2c 20 36 32 35 2c 20 36 34 30 2c 20 36 34 38 2c 20 36 37 35 5d 0a 0a 59 65 20 6f 6c 64 600,.625,.640,.648,.675]..Ye.old
3fe0 65 20 46 69 62 6f 6e 61 63 63 69 20 67 65 6e 65 72 61 74 6f 72 2c 20 4c 61 7a 79 4c 69 73 74 20 e.Fibonacci.generator,.LazyList.
4000 73 74 79 6c 65 2e 0a 0a 3e 3e 3e 20 64 65 66 20 66 69 62 67 65 6e 28 61 2c 20 62 29 3a 0a 2e 2e style...>>>.def.fibgen(a,.b):...
4020 2e 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 73 75 6d 28 67 2c 20 68 29 3a 0a 2e 2e 2e 20 20 20 20 ..........def.sum(g,.h):........
4040 20 20 20 20 20 77 68 69 6c 65 20 31 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 .....while.1:.................yi
4060 65 6c 64 20 67 2e 6e 65 78 74 28 29 20 2b 20 68 2e 6e 65 78 74 28 29 0a 2e 2e 2e 0a 2e 2e 2e 20 eld.g.next().+.h.next().........
4080 20 20 20 20 64 65 66 20 74 61 69 6c 28 67 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 67 2e 6e ....def.tail(g):.............g.n
40a0 65 78 74 28 29 20 20 20 20 23 20 74 68 72 6f 77 20 66 69 72 73 74 20 61 77 61 79 0a 2e 2e 2e 20 ext()....#.throw.first.away.....
40c0 20 20 20 20 20 20 20 20 66 6f 72 20 78 20 69 6e 20 67 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 ........for.x.in.g:.............
40e0 20 20 20 20 79 69 65 6c 64 20 78 0a 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 61 0a ....yield.x.............yield.a.
4100 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 62 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 73 20 69 6e ........yield.b.........for.s.in
4120 20 73 75 6d 28 69 74 65 72 28 66 69 62 29 2c 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 .sum(iter(fib),.................
4140 20 20 20 20 20 74 61 69 6c 28 69 74 65 72 28 66 69 62 29 29 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 .....tail(iter(fib))):..........
4160 20 20 20 79 69 65 6c 64 20 73 0a 0a 3e 3e 3e 20 66 69 62 20 3d 20 4c 61 7a 79 4c 69 73 74 28 66 ...yield.s..>>>.fib.=.LazyList(f
4180 69 62 67 65 6e 28 31 2c 20 32 29 29 0a 3e 3e 3e 20 66 69 72 73 74 6e 28 69 74 65 72 28 66 69 62 ibgen(1,.2)).>>>.firstn(iter(fib
41a0 29 2c 20 31 37 29 0a 5b 31 2c 20 32 2c 20 33 2c 20 35 2c 20 38 2c 20 31 33 2c 20 32 31 2c 20 33 ),.17).[1,.2,.3,.5,.8,.13,.21,.3
41c0 34 2c 20 35 35 2c 20 38 39 2c 20 31 34 34 2c 20 32 33 33 2c 20 33 37 37 2c 20 36 31 30 2c 20 39 4,.55,.89,.144,.233,.377,.610,.9
41e0 38 37 2c 20 31 35 39 37 2c 20 32 35 38 34 5d 0a 0a 0a 52 75 6e 6e 69 6e 67 20 61 66 74 65 72 20 87,.1597,.2584]...Running.after.
4200 79 6f 75 72 20 74 61 69 6c 20 77 69 74 68 20 69 74 65 72 74 6f 6f 6c 73 2e 74 65 65 20 28 6e 65 your.tail.with.itertools.tee.(ne
4220 77 20 69 6e 20 76 65 72 73 69 6f 6e 20 32 2e 34 29 0a 0a 54 68 65 20 61 6c 67 6f 72 69 74 68 6d w.in.version.2.4)..The.algorithm
4240 73 20 22 6d 32 33 35 22 20 28 48 61 6d 6d 69 6e 67 29 20 61 6e 64 20 46 69 62 6f 6e 61 63 63 69 s."m235".(Hamming).and.Fibonacci
4260 20 70 72 65 73 65 6e 74 65 64 20 61 62 6f 76 65 20 61 72 65 20 62 6f 74 68 0a 65 78 61 6d 70 6c .presented.above.are.both.exampl
4280 65 73 20 6f 66 20 61 20 77 68 6f 6c 65 20 66 61 6d 69 6c 79 20 6f 66 20 46 50 20 28 66 75 6e 63 es.of.a.whole.family.of.FP.(func
42a0 74 69 6f 6e 61 6c 20 70 72 6f 67 72 61 6d 6d 69 6e 67 29 20 61 6c 67 6f 72 69 74 68 6d 73 0a 77 tional.programming).algorithms.w
42c0 68 65 72 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 64 75 63 65 73 20 61 6e 64 20 72 65 74 here.a.function.produces.and.ret
42e0 75 72 6e 73 20 61 20 6c 69 73 74 20 77 68 69 6c 65 20 74 68 65 20 70 72 6f 64 75 63 74 69 6f 6e urns.a.list.while.the.production
4300 20 61 6c 67 6f 72 69 74 68 6d 0a 73 75 70 70 6f 73 65 20 74 68 65 20 6c 69 73 74 20 61 73 20 61 .algorithm.suppose.the.list.as.a
4320 6c 72 65 61 64 79 20 70 72 6f 64 75 63 65 64 20 62 79 20 72 65 63 75 72 73 69 76 65 6c 79 20 63 lready.produced.by.recursively.c
4340 61 6c 6c 69 6e 67 20 69 74 73 65 6c 66 2e 0a 46 6f 72 20 74 68 65 73 65 20 61 6c 67 6f 72 69 74 alling.itself..For.these.algorit
4360 68 6d 73 20 74 6f 20 77 6f 72 6b 2c 20 74 68 65 79 20 6d 75 73 74 3a 0a 0a 2d 20 70 72 6f 64 75 hms.to.work,.they.must:..-.produ
4380 63 65 20 61 74 20 6c 65 61 73 74 20 61 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 77 69 74 68 ce.at.least.a.first.element.with
43a0 6f 75 74 20 70 72 65 73 75 70 70 6f 73 69 6e 67 20 74 68 65 20 65 78 69 73 74 65 6e 63 65 20 6f out.presupposing.the.existence.o
43c0 66 0a 20 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 6c 69 73 74 0a 2d 20 70 72 6f 64 75 f...the.rest.of.the.list.-.produ
43e0 63 65 20 74 68 65 69 72 20 65 6c 65 6d 65 6e 74 73 20 69 6e 20 61 20 6c 61 7a 79 20 6d 61 6e 6e ce.their.elements.in.a.lazy.mann
4400 65 72 0a 0a 54 6f 20 77 6f 72 6b 20 65 66 66 69 63 69 65 6e 74 6c 79 2c 20 74 68 65 20 62 65 67 er..To.work.efficiently,.the.beg
4420 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 6c 69 73 74 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 72 inning.of.the.list.must.not.be.r
4440 65 63 6f 6d 70 75 74 65 64 20 6f 76 65 72 0a 61 6e 64 20 6f 76 65 72 20 61 67 61 69 6e 2e 20 54 ecomputed.over.and.over.again..T
4460 68 69 73 20 69 73 20 65 6e 73 75 72 65 64 20 69 6e 20 6d 6f 73 74 20 46 50 20 6c 61 6e 67 75 61 his.is.ensured.in.most.FP.langua
4480 67 65 73 20 61 73 20 61 20 62 75 69 6c 74 2d 69 6e 20 66 65 61 74 75 72 65 2e 0a 49 6e 20 70 79 ges.as.a.built-in.feature..In.py
44a0 74 68 6f 6e 2c 20 77 65 20 68 61 76 65 20 74 6f 20 65 78 70 6c 69 63 69 74 6c 79 20 6d 61 69 6e thon,.we.have.to.explicitly.main
44c0 74 61 69 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 72 65 61 64 79 20 63 6f 6d 70 75 74 65 64 20 tain.a.list.of.already.computed.
44e0 72 65 73 75 6c 74 73 0a 61 6e 64 20 61 62 61 6e 64 6f 6e 20 67 65 6e 75 69 6e 65 20 72 65 63 75 results.and.abandon.genuine.recu
4500 72 73 69 76 69 74 79 2e 0a 0a 54 68 69 73 20 69 73 20 77 68 61 74 20 68 61 64 20 62 65 65 6e 20 rsivity...This.is.what.had.been.
4520 61 74 74 65 6d 70 74 65 64 20 61 62 6f 76 65 20 77 69 74 68 20 74 68 65 20 4c 61 7a 79 4c 69 73 attempted.above.with.the.LazyLis
4540 74 20 63 6c 61 73 73 2e 20 4f 6e 65 20 70 72 6f 62 6c 65 6d 0a 77 69 74 68 20 74 68 61 74 20 63 t.class..One.problem.with.that.c
4560 6c 61 73 73 20 69 73 20 74 68 61 74 20 69 74 20 6b 65 65 70 73 20 61 20 6c 69 73 74 20 6f 66 20 lass.is.that.it.keeps.a.list.of.
4580 61 6c 6c 20 6f 66 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 72 65 73 75 6c 74 73 20 61 6e 64 all.of.the.generated.results.and
45a0 0a 74 68 65 72 65 66 6f 72 65 20 63 6f 6e 74 69 6e 75 61 6c 6c 79 20 67 72 6f 77 73 2e 20 54 68 .therefore.continually.grows..Th
45c0 69 73 20 70 61 72 74 69 61 6c 6c 79 20 64 65 66 65 61 74 73 20 74 68 65 20 67 6f 61 6c 20 6f 66 is.partially.defeats.the.goal.of
45e0 20 74 68 65 20 67 65 6e 65 72 61 74 6f 72 0a 63 6f 6e 63 65 70 74 2c 20 76 69 7a 2e 20 70 72 6f .the.generator.concept,.viz..pro
4600 64 75 63 65 20 74 68 65 20 72 65 73 75 6c 74 73 20 6f 6e 6c 79 20 61 73 20 6e 65 65 64 65 64 20 duce.the.results.only.as.needed.
4620 69 6e 73 74 65 61 64 20 6f 66 20 70 72 6f 64 75 63 69 6e 67 20 74 68 65 6d 0a 61 6c 6c 20 61 6e instead.of.producing.them.all.an
4640 64 20 74 68 65 72 65 62 79 20 77 61 73 74 69 6e 67 20 6d 65 6d 6f 72 79 2e 0a 0a 54 68 61 6e 6b d.thereby.wasting.memory...Thank
4660 73 20 74 6f 20 69 74 65 72 74 6f 6f 6c 73 2e 74 65 65 2c 20 69 74 20 69 73 20 6e 6f 77 20 63 6c s.to.itertools.tee,.it.is.now.cl
4680 65 61 72 20 22 68 6f 77 20 74 6f 20 67 65 74 20 74 68 65 20 69 6e 74 65 72 6e 61 6c 20 75 73 65 ear."how.to.get.the.internal.use
46a0 73 20 6f 66 0a 6d 32 33 35 20 74 6f 20 73 68 61 72 65 20 61 20 73 69 6e 67 6c 65 20 67 65 6e 65 s.of.m235.to.share.a.single.gene
46c0 72 61 74 6f 72 22 2e 0a 0a 3e 3e 3e 20 66 72 6f 6d 20 69 74 65 72 74 6f 6f 6c 73 20 69 6d 70 6f rator"...>>>.from.itertools.impo
46e0 72 74 20 74 65 65 0a 3e 3e 3e 20 64 65 66 20 6d 32 33 35 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 64 rt.tee.>>>.def.m235():.........d
4700 65 66 20 5f 6d 32 33 35 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a ef._m235():.............yield.1.
4720 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 20 69 6e 20 6d 65 72 67 65 28 74 69 6d 65 73 ............for.n.in.merge(times
4740 28 32 2c 20 6d 32 29 2c 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (2,.m2),........................
4760 20 20 20 20 6d 65 72 67 65 28 74 69 6d 65 73 28 33 2c 20 6d 33 29 2c 0a 2e 2e 2e 20 20 20 20 20 ....merge(times(3,.m3),.........
4780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 69 6d 65 73 28 35 .........................times(5
47a0 2c 20 6d 35 29 29 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 6e ,.m5))):.................yield.n
47c0 0a 2e 2e 2e 20 20 20 20 20 6d 31 20 3d 20 5f 6d 32 33 35 28 29 0a 2e 2e 2e 20 20 20 20 20 6d 32 .........m1.=._m235().........m2
47e0 2c 20 6d 33 2c 20 6d 35 2c 20 6d 52 65 73 20 3d 20 74 65 65 28 6d 31 2c 20 34 29 0a 2e 2e 2e 20 ,.m3,.m5,.mRes.=.tee(m1,.4).....
4800 20 20 20 20 72 65 74 75 72 6e 20 6d 52 65 73 0a 0a 3e 3e 3e 20 69 74 20 3d 20 6d 32 33 35 28 29 ....return.mRes..>>>.it.=.m235()
4820 0a 3e 3e 3e 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 35 29 3a 0a 2e 2e 2e 20 20 20 20 20 .>>>.for.i.in.range(5):.........
4840 70 72 69 6e 74 20 66 69 72 73 74 6e 28 69 74 2c 20 31 35 29 0a 5b 31 2c 20 32 2c 20 33 2c 20 34 print.firstn(it,.15).[1,.2,.3,.4
4860 2c 20 35 2c 20 36 2c 20 38 2c 20 39 2c 20 31 30 2c 20 31 32 2c 20 31 35 2c 20 31 36 2c 20 31 38 ,.5,.6,.8,.9,.10,.12,.15,.16,.18
4880 2c 20 32 30 2c 20 32 34 5d 0a 5b 32 35 2c 20 32 37 2c 20 33 30 2c 20 33 32 2c 20 33 36 2c 20 34 ,.20,.24].[25,.27,.30,.32,.36,.4
48a0 30 2c 20 34 35 2c 20 34 38 2c 20 35 30 2c 20 35 34 2c 20 36 30 2c 20 36 34 2c 20 37 32 2c 20 37 0,.45,.48,.50,.54,.60,.64,.72,.7
48c0 35 2c 20 38 30 5d 0a 5b 38 31 2c 20 39 30 2c 20 39 36 2c 20 31 30 30 2c 20 31 30 38 2c 20 31 32 5,.80].[81,.90,.96,.100,.108,.12
48e0 30 2c 20 31 32 35 2c 20 31 32 38 2c 20 31 33 35 2c 20 31 34 34 2c 20 31 35 30 2c 20 31 36 30 2c 0,.125,.128,.135,.144,.150,.160,
4900 20 31 36 32 2c 20 31 38 30 2c 20 31 39 32 5d 0a 5b 32 30 30 2c 20 32 31 36 2c 20 32 32 35 2c 20 .162,.180,.192].[200,.216,.225,.
4920 32 34 30 2c 20 32 34 33 2c 20 32 35 30 2c 20 32 35 36 2c 20 32 37 30 2c 20 32 38 38 2c 20 33 30 240,.243,.250,.256,.270,.288,.30
4940 30 2c 20 33 32 30 2c 20 33 32 34 2c 20 33 36 30 2c 20 33 37 35 2c 20 33 38 34 5d 0a 5b 34 30 30 0,.320,.324,.360,.375,.384].[400
4960 2c 20 34 30 35 2c 20 34 33 32 2c 20 34 35 30 2c 20 34 38 30 2c 20 34 38 36 2c 20 35 30 30 2c 20 ,.405,.432,.450,.480,.486,.500,.
4980 35 31 32 2c 20 35 34 30 2c 20 35 37 36 2c 20 36 30 30 2c 20 36 32 35 2c 20 36 34 30 2c 20 36 34 512,.540,.576,.600,.625,.640,.64
49a0 38 2c 20 36 37 35 5d 0a 0a 54 68 65 20 22 74 65 65 22 20 66 75 6e 63 74 69 6f 6e 20 64 6f 65 73 8,.675]..The."tee".function.does
49c0 20 6a 75 73 74 20 77 68 61 74 20 77 65 20 77 61 6e 74 2e 20 49 74 20 69 6e 74 65 72 6e 61 6c 6c .just.what.we.want..It.internall
49e0 79 20 6b 65 65 70 73 20 61 20 67 65 6e 65 72 61 74 65 64 0a 72 65 73 75 6c 74 20 66 6f 72 20 61 y.keeps.a.generated.result.for.a
4a00 73 20 6c 6f 6e 67 20 61 73 20 69 74 20 68 61 73 20 6e 6f 74 20 62 65 65 6e 20 22 63 6f 6e 73 75 s.long.as.it.has.not.been."consu
4a20 6d 65 64 22 20 66 72 6f 6d 20 61 6c 6c 20 6f 66 20 74 68 65 20 64 75 70 6c 69 63 61 74 65 64 0a med".from.all.of.the.duplicated.
4a40 69 74 65 72 61 74 6f 72 73 2c 20 77 68 65 72 65 75 70 6f 6e 20 69 74 20 69 73 20 64 65 6c 65 74 iterators,.whereupon.it.is.delet
4a60 65 64 2e 20 59 6f 75 20 63 61 6e 20 74 68 65 72 65 66 6f 72 65 20 70 72 69 6e 74 20 74 68 65 20 ed..You.can.therefore.print.the.
4a80 68 61 6d 6d 69 6e 67 0a 73 65 71 75 65 6e 63 65 20 64 75 72 69 6e 67 20 68 6f 75 72 73 20 77 69 hamming.sequence.during.hours.wi
4aa0 74 68 6f 75 74 20 69 6e 63 72 65 61 73 69 6e 67 20 6d 65 6d 6f 72 79 20 75 73 61 67 65 2c 20 6f thout.increasing.memory.usage,.o
4ac0 72 20 76 65 72 79 20 6c 69 74 74 6c 65 2e 0a 0a 54 68 65 20 62 65 61 75 74 79 20 6f 66 20 69 74 r.very.little...The.beauty.of.it
4ae0 20 69 73 20 74 68 61 74 20 72 65 63 75 72 73 69 76 65 20 72 75 6e 6e 69 6e 67 2d 61 66 74 65 72 .is.that.recursive.running-after
4b00 2d 74 68 65 69 72 2d 74 61 69 6c 20 46 50 20 61 6c 67 6f 72 69 74 68 6d 73 0a 61 72 65 20 71 75 -their-tail.FP.algorithms.are.qu
4b20 69 74 65 20 73 74 72 61 69 67 68 74 66 6f 72 77 61 72 64 6c 79 20 65 78 70 72 65 73 73 65 64 20 ite.straightforwardly.expressed.
4b40 77 69 74 68 20 74 68 69 73 20 50 79 74 68 6f 6e 20 69 64 69 6f 6d 2e 0a 0a 59 65 20 6f 6c 64 65 with.this.Python.idiom...Ye.olde
4b60 20 46 69 62 6f 6e 61 63 63 69 20 67 65 6e 65 72 61 74 6f 72 2c 20 74 65 65 20 73 74 79 6c 65 2e .Fibonacci.generator,.tee.style.
4b80 0a 0a 3e 3e 3e 20 64 65 66 20 66 69 62 28 29 3a 0a 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 64 65 66 ..>>>.def.fib():.............def
4ba0 20 5f 69 73 75 6d 28 67 2c 20 68 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 ._isum(g,.h):.............while.
4bc0 31 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 67 2e 6e 65 78 74 28 1:.................yield.g.next(
4be0 29 20 2b 20 68 2e 6e 65 78 74 28 29 0a 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 64 65 66 20 5f 66 69 ).+.h.next().............def._fi
4c00 62 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 b():.............yield.1........
4c20 20 20 20 20 20 79 69 65 6c 64 20 32 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 69 62 54 61 69 6c .....yield.2.............fibTail
4c40 2e 6e 65 78 74 28 29 20 23 20 74 68 72 6f 77 20 66 69 72 73 74 20 61 77 61 79 0a 2e 2e 2e 20 20 .next().#.throw.first.away......
4c60 20 20 20 20 20 20 20 66 6f 72 20 72 65 73 20 69 6e 20 5f 69 73 75 6d 28 66 69 62 48 65 61 64 2c .......for.res.in._isum(fibHead,
4c80 20 66 69 62 54 61 69 6c 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 .fibTail):.................yield
4ca0 20 72 65 73 0a 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 72 65 61 6c 66 69 62 20 3d 20 5f 66 69 62 28 .res.............realfib.=._fib(
4cc0 29 0a 2e 2e 2e 20 20 20 20 20 66 69 62 48 65 61 64 2c 20 66 69 62 54 61 69 6c 2c 20 66 69 62 52 ).........fibHead,.fibTail,.fibR
4ce0 65 73 20 3d 20 74 65 65 28 72 65 61 6c 66 69 62 2c 20 33 29 0a 2e 2e 2e 20 20 20 20 20 72 65 74 es.=.tee(realfib,.3).........ret
4d00 75 72 6e 20 66 69 62 52 65 73 0a 0a 3e 3e 3e 20 66 69 72 73 74 6e 28 66 69 62 28 29 2c 20 31 37 urn.fibRes..>>>.firstn(fib(),.17
4d20 29 0a 5b 31 2c 20 32 2c 20 33 2c 20 35 2c 20 38 2c 20 31 33 2c 20 32 31 2c 20 33 34 2c 20 35 35 ).[1,.2,.3,.5,.8,.13,.21,.34,.55
4d40 2c 20 38 39 2c 20 31 34 34 2c 20 32 33 33 2c 20 33 37 37 2c 20 36 31 30 2c 20 39 38 37 2c 20 31 ,.89,.144,.233,.377,.610,.987,.1
4d60 35 39 37 2c 20 32 35 38 34 5d 0a 0a 73 9b 0f 00 00 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 597,.2584]..s......>>>.def.f():.
4d80 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 20 32 32 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 ........return.22.........yield.
4da0 31 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 1.Traceback.(most.recent.call.la
4dc0 73 74 29 3a 0a 20 20 2e 2e 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 27 72 65 74 75 72 6e 27 20 st):......SyntaxError:.'return'.
4de0 77 69 74 68 20 61 72 67 75 6d 65 6e 74 20 69 6e 73 69 64 65 20 67 65 6e 65 72 61 74 6f 72 20 28 with.argument.inside.generator.(
4e00 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 5f 5f <doctest.test.test_generators.__
4e20 74 65 73 74 5f 5f 2e 73 79 6e 74 61 78 5b 30 5d 3e 2c 20 6c 69 6e 65 20 33 29 0a 0a 3e 3e 3e 20 test__.syntax[0]>,.line.3)..>>>.
4e40 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 def.f():.........yield.1........
4e60 20 72 65 74 75 72 6e 20 32 32 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e .return.22.Traceback.(most.recen
4e80 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 t.call.last):......SyntaxError:.
4ea0 27 72 65 74 75 72 6e 27 20 77 69 74 68 20 61 72 67 75 6d 65 6e 74 20 69 6e 73 69 64 65 20 67 65 'return'.with.argument.inside.ge
4ec0 6e 65 72 61 74 6f 72 20 28 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e 65 nerator.(<doctest.test.test_gene
4ee0 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 73 79 6e 74 61 78 5b 31 5d 3e 2c 20 6c 69 6e 65 rators.__test__.syntax[1]>,.line
4f00 20 33 29 0a 0a 22 72 65 74 75 72 6e 20 4e 6f 6e 65 22 20 69 73 20 6e 6f 74 20 74 68 65 20 73 61 .3).."return.None".is.not.the.sa
4f20 6d 65 20 61 73 20 22 72 65 74 75 72 6e 22 20 69 6e 20 61 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a me.as."return".in.a.generator:..
4f40 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e >>>.def.f():.........yield.1....
4f60 20 20 20 20 20 72 65 74 75 72 6e 20 4e 6f 6e 65 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 .....return.None.Traceback.(most
4f80 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 0a 53 79 6e 74 61 78 45 .recent.call.last):......SyntaxE
4fa0 72 72 6f 72 3a 20 27 72 65 74 75 72 6e 27 20 77 69 74 68 20 61 72 67 75 6d 65 6e 74 20 69 6e 73 rror:.'return'.with.argument.ins
4fc0 69 64 65 20 67 65 6e 65 72 61 74 6f 72 20 28 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 ide.generator.(<doctest.test.tes
4fe0 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 73 79 6e 74 61 78 5b 32 5d 3e t_generators.__test__.syntax[2]>
5000 2c 20 6c 69 6e 65 20 33 29 0a 0a 54 68 65 73 65 20 61 72 65 20 66 69 6e 65 3a 0a 0a 3e 3e 3e 20 ,.line.3)..These.are.fine:..>>>.
5020 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 def.f():.........yield.1........
5040 20 72 65 74 75 72 6e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 .return..>>>.def.f():.........tr
5060 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 20 20 20 20 20 66 y:.............yield.1.........f
5080 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 61 73 73 0a 0a 3e 3e 3e 20 64 65 inally:.............pass..>>>.de
50a0 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 f.f():.........try:.............
50c0 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2f 2f 30 0a 2e 2e 2e 20 20 20 try:.................1//0.......
50e0 20 20 20 20 20 20 65 78 63 65 70 74 20 5a 65 72 6f 44 69 76 69 73 69 6f 6e 45 72 72 6f 72 3a 0a ......except.ZeroDivisionError:.
5100 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 36 36 36 0a 2e 2e 2e 20 20 20 ................yield.666.......
5120 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 ......except:.................pa
5140 73 73 0a 2e 2e 2e 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 ss.........finally:.............
5160 70 61 73 73 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a pass..>>>.def.f():.........try:.
5180 2e 2e 2e 20 20 20 20 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 ............try:................
51a0 20 79 69 65 6c 64 20 31 32 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2f 2f 30 0a 2e .yield.12.................1//0..
51c0 2e 2e 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 5a 65 72 6f 44 69 76 69 73 69 6f 6e 45 72 ...........except.ZeroDivisionEr
51e0 72 6f 72 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 36 36 36 0a 2e ror:.................yield.666..
5200 2e 2e 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 ...........except:..............
5220 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 20 3d 20 ...try:.....................x.=.
5240 31 32 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 12.................finally:.....
5260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 32 0a 2e 2e 2e 20 20 20 20 ................yield.12........
5280 20 65 78 63 65 70 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 0a 3e 3e 3e 20 .except:.............return.>>>.
52a0 6c 69 73 74 28 66 28 29 29 0a 5b 31 32 2c 20 36 36 36 5d 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 list(f()).[12,.666]..>>>.def.f()
52c0 3a 0a 2e 2e 2e 20 20 20 20 79 69 65 6c 64 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 :........yield.>>>.type(f()).<ty
52e0 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e pe.'generator'>...>>>.def.f():..
5300 2e 2e 20 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 79 69 65 6c 64 0a 3e 3e 3e ......if.0:............yield.>>>
5320 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 0a .type(f()).<type.'generator'>...
5340 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 >>>.def.f():.........if.0:......
5360 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 .......yield.1.>>>.type(f()).<ty
5380 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e pe.'generator'>..>>>.def.f():...
53a0 2e 20 20 20 20 69 66 20 22 22 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 4e 6f 6e .....if."":............yield.Non
53c0 65 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 e.>>>.type(f()).<type.'generator
53e0 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 0a '>..>>>.def.f():.........return.
5400 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 78 3d 3d 34 ........try:.............if.x==4
5420 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 73 73 0a 2e 2e 2e 20 20 20 20 20 20 :.................pass..........
5440 20 20 20 65 6c 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 3a 0a ...elif.0:.................try:.
5460 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 2f 2f 30 0a 2e 2e 2e 20 20 20 20 ....................1//0........
5480 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 53 79 6e 74 61 78 45 72 72 6f 72 3a 0a 2e 2e 2e .........except.SyntaxError:....
54a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 73 73 0a 2e 2e 2e 20 20 20 20 20 20 20 .................pass...........
54c0 20 20 20 20 20 20 65 6c 73 65 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......else:.....................
54e0 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 if.0:.........................wh
5500 69 6c 65 20 31 32 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ile.12:.........................
5520 20 20 20 20 78 20 2b 3d 20 31 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....x.+=.1......................
5540 20 20 20 20 20 20 20 79 69 65 6c 64 20 32 20 23 20 64 6f 6e 27 74 20 62 6c 69 6e 6b 0a 2e 2e 2e .......yield.2.#.don't.blink....
5560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 28 61 2c 20 62 2c .........................f(a,.b,
5580 20 63 2c 20 64 2c 20 65 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 65 6c 73 65 3a 0a 2e 2e 2e 20 .c,.d,.e).............else:.....
55a0 20 20 20 20 20 20 20 20 20 20 20 20 70 61 73 73 0a 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a ............pass.........except:
55c0 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 78 20 3d 20 31 0a 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 .............x.=.1.........retur
55e0 6e 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 n.>>>.type(f()).<type.'generator
5600 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 69 66 20 30 3a 0a 2e '>..>>>.def.f():.........if.0:..
5620 2e 2e 20 20 20 20 20 20 20 20 20 64 65 66 20 67 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 ...........def.g():.............
5640 20 20 20 20 79 69 65 6c 64 20 31 0a 2e 2e 2e 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 ....yield.1.....>>>.type(f()).<t
5660 79 70 65 20 27 4e 6f 6e 65 54 79 70 65 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e ype.'NoneType'>..>>>.def.f():...
5680 2e 20 20 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 63 6c 61 73 73 20 43 3a ......if.0:.............class.C:
56a0 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 20 5f 5f 69 6e 69 74 5f 5f 28 73 65 .................def.__init__(se
56c0 6c 66 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 31 lf):.....................yield.1
56e0 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 20 66 28 73 65 6c 66 29 3a 0a 2e 2e .................def.f(self):...
5700 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 32 0a 3e 3e 3e 20 74 79 ..................yield.2.>>>.ty
5720 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 4e 6f 6e 65 54 79 70 65 27 3e 0a 0a 3e 3e 3e 20 64 pe(f()).<type.'NoneType'>..>>>.d
5740 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 ef.f():.........if.0:...........
5760 20 20 72 65 74 75 72 6e 0a 2e 2e 2e 20 20 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 ..return.........if.0:..........
5780 20 20 20 79 69 65 6c 64 20 32 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 ...yield.2.>>>.type(f()).<type.'
57a0 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 generator'>...>>>.def.f():......
57c0 20 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 6c 61 6d 62 64 61 20 78 3a 20 20 ...if.0:.............lambda.x:..
57e0 78 20 20 20 20 20 20 20 20 23 20 73 68 6f 75 6c 64 6e 27 74 20 74 72 69 67 67 65 72 20 68 65 72 x........#.shouldn't.trigger.her
5800 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 20 20 20 20 20 20 20 20 20 20 20 e.............return............
5820 20 20 23 20 6f 72 20 68 65 72 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 64 65 66 20 66 28 69 29 ..#.or.here.............def.f(i)
5840 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 32 2a 69 20 20 20 20 :.................return.2*i....
5860 20 20 23 20 6f 72 20 68 65 72 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 69 66 20 30 3a 0a 2e 2e ..#.or.here.............if.0:...
5880 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 33 20 20 20 20 20 20 20 20 23 20 ..............return.3........#.
58a0 62 75 74 20 2a 74 68 69 73 2a 20 73 75 63 6b 73 20 28 6c 69 6e 65 20 38 29 0a 2e 2e 2e 20 20 20 but.*this*.sucks.(line.8).......
58c0 20 20 69 66 20 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 32 20 20 20 20 20 ..if.0:.............yield.2.....
58e0 20 20 20 20 20 20 20 20 23 20 62 65 63 61 75 73 65 20 69 74 27 73 20 61 20 67 65 6e 65 72 61 74 ........#.because.it's.a.generat
5900 6f 72 20 28 6c 69 6e 65 20 31 30 29 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 or.(line.10).Traceback.(most.rec
5920 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 27 72 65 ent.call.last):.SyntaxError:.'re
5940 74 75 72 6e 27 20 77 69 74 68 20 61 72 67 75 6d 65 6e 74 20 69 6e 73 69 64 65 20 67 65 6e 65 72 turn'.with.argument.inside.gener
5960 61 74 6f 72 20 28 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e 65 72 61 74 ator.(<doctest.test.test_generat
5980 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 73 79 6e 74 61 78 5b 32 34 5d 3e 2c 20 6c 69 6e 65 20 31 ors.__test__.syntax[24]>,.line.1
59a0 30 29 0a 0a 54 68 69 73 20 6f 6e 65 20 63 61 75 73 65 64 20 61 20 63 72 61 73 68 20 28 73 65 65 0)..This.one.caused.a.crash.(see
59c0 20 53 46 20 62 75 67 20 35 36 37 35 33 38 29 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e .SF.bug.567538):..>>>.def.f():..
59e0 2e 2e 20 20 20 20 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 33 29 3a 0a 2e 2e 2e 20 20 20 .......for.i.in.range(3):.......
5a00 20 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 ......try:.................conti
5a20 6e 75 65 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 20 20 20 nue.............finally:........
5a40 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 69 0a 2e 2e 2e 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 .........yield.i.....>>>.g.=.f()
5a60 0a 3e 3e 3e 20 70 72 69 6e 74 20 67 2e 6e 65 78 74 28 29 0a 30 0a 3e 3e 3e 20 70 72 69 6e 74 20 .>>>.print.g.next().0.>>>.print.
5a80 67 2e 6e 65 78 74 28 29 0a 31 0a 3e 3e 3e 20 70 72 69 6e 74 20 67 2e 6e 65 78 74 28 29 0a 32 0a g.next().1.>>>.print.g.next().2.
5aa0 3e 3e 3e 20 70 72 69 6e 74 20 67 2e 6e 65 78 74 28 29 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f >>>.print.g.next().Traceback.(mo
5ac0 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 53 74 6f 70 49 74 65 72 61 74 st.recent.call.last):.StopIterat
5ae0 69 6f 6e 0a 0a 0a 54 65 73 74 20 74 68 65 20 67 69 5f 63 6f 64 65 20 61 74 74 72 69 62 75 74 65 ion...Test.the.gi_code.attribute
5b00 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 35 0a 2e ..>>>.def.f():.........yield.5..
5b20 2e 2e 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 67 69 5f 63 6f 64 65 20 69 73 20 ...>>>.g.=.f().>>>.g.gi_code.is.
5b40 66 2e 66 75 6e 63 5f 63 6f 64 65 0a 54 72 75 65 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 35 0a f.func_code.True.>>>.g.next().5.
5b60 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 >>>.g.next().Traceback.(most.rec
5b80 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 0a 3e 3e ent.call.last):.StopIteration.>>
5ba0 3e 20 67 2e 67 69 5f 63 6f 64 65 20 69 73 20 66 2e 66 75 6e 63 5f 63 6f 64 65 0a 54 72 75 65 0a >.g.gi_code.is.f.func_code.True.
5bc0 0a 0a 54 65 73 74 20 74 68 65 20 5f 5f 6e 61 6d 65 5f 5f 20 61 74 74 72 69 62 75 74 65 20 61 6e ..Test.the.__name__.attribute.an
5be0 64 20 74 68 65 20 72 65 70 72 28 29 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 d.the.repr()..>>>.def.f():......
5c00 20 20 79 69 65 6c 64 20 35 0a 2e 2e 2e 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e ..yield.5.....>>>.g.=.f().>>>.g.
5c20 5f 5f 6e 61 6d 65 5f 5f 0a 27 66 27 0a 3e 3e 3e 20 72 65 70 72 28 67 29 20 20 23 20 64 6f 63 74 __name__.'f'.>>>.repr(g)..#.doct
5c40 65 73 74 3a 20 2b 45 4c 4c 49 50 53 49 53 0a 27 3c 67 65 6e 65 72 61 74 6f 72 20 6f 62 6a 65 63 est:.+ELLIPSIS.'<generator.objec
5c60 74 20 66 20 61 74 20 2e 2e 2e 3e 27 0a 0a 4c 61 6d 62 64 61 73 20 73 68 6f 75 6c 64 6e 27 74 20 t.f.at....>'..Lambdas.shouldn't.
5c80 68 61 76 65 20 74 68 65 69 72 20 75 73 75 61 6c 20 72 65 74 75 72 6e 20 62 65 68 61 76 69 6f 72 have.their.usual.return.behavior
5ca0 2e 0a 0a 3e 3e 3e 20 78 20 3d 20 6c 61 6d 62 64 61 3a 20 28 79 69 65 6c 64 20 31 29 0a 3e 3e 3e ...>>>.x.=.lambda:.(yield.1).>>>
5cc0 20 6c 69 73 74 28 78 28 29 29 0a 5b 31 5d 0a 0a 3e 3e 3e 20 78 20 3d 20 6c 61 6d 62 64 61 3a 20 .list(x()).[1]..>>>.x.=.lambda:.
5ce0 28 28 79 69 65 6c 64 20 31 29 2c 20 28 79 69 65 6c 64 20 32 29 29 0a 3e 3e 3e 20 6c 69 73 74 28 ((yield.1),.(yield.2)).>>>.list(
5d00 78 28 29 29 0a 5b 31 2c 20 32 5d 0a 63 01 00 00 00 02 00 00 00 03 00 00 00 23 00 00 00 73 48 00 x()).[1,.2].c............#...sH.
5d20 00 00 64 00 00 67 01 00 74 01 00 88 01 00 83 01 00 14 89 02 00 87 00 00 87 01 00 87 02 00 66 03 ..d..g..t.....................f.
5d40 00 64 01 00 86 00 00 89 00 00 78 19 00 88 00 00 64 02 00 83 01 00 44 5d 0b 00 7d 01 00 7c 01 00 .d........x.....d.....D]..}..|..
5d60 56 01 71 35 00 57 64 00 00 53 28 03 00 00 00 4e 63 01 00 00 00 02 00 00 00 04 00 00 00 33 00 00 V.q5.Wd..S(....Nc............3..
5d80 00 73 5a 00 00 00 7c 00 00 74 00 00 88 01 00 83 01 00 6b 05 00 72 1a 00 88 02 00 56 01 6e 3c 00 .sZ...|..t........k..r.....V.n<.
5da0 78 39 00 88 01 00 7c 00 00 19 83 00 00 44 5d 2a 00 88 02 00 7c 00 00 3c 78 1d 00 88 00 00 7c 00 x9....|......D]*....|..<x.....|.
5dc0 00 64 01 00 17 83 01 00 44 5d 0b 00 7d 01 00 7c 01 00 56 01 71 43 00 57 71 28 00 57 64 00 00 53 .d......D]..}..|..V.qC.Wq(.Wd..S
5de0 28 02 00 00 00 4e 69 01 00 00 00 28 01 00 00 00 74 03 00 00 00 6c 65 6e 28 02 00 00 00 74 01 00 (....Ni....(....t....len(....t..
5e00 00 00 69 74 01 00 00 00 78 28 03 00 00 00 74 03 00 00 00 67 65 6e 74 02 00 00 00 67 73 74 06 00 ..it....x(....t....gent....gst..
5e20 00 00 76 61 6c 75 65 73 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f ..values(....s\.../tmp/ndk-User/
5e40 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 buildhost/install/prebuilt/darwi
5e60 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 n-x86_64/lib/python2.7/test/test
5e80 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 52 03 00 00 00 c8 03 00 00 73 0a 00 00 00 00 01 12 01 _generators.pyR........s........
5ea0 08 02 18 01 17 01 69 00 00 00 00 28 02 00 00 00 74 04 00 00 00 4e 6f 6e 65 52 00 00 00 00 28 02 ......i....(....t....NoneR....(.
5ec0 00 00 00 52 04 00 00 00 52 02 00 00 00 28 00 00 00 00 28 03 00 00 00 52 03 00 00 00 52 04 00 00 ...R....R....(....(....R....R...
5ee0 00 52 05 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f .R....s\.../tmp/ndk-User/buildho
5f00 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 st/install/prebuilt/darwin-x86_6
5f20 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 4/lib/python2.7/test/test_genera
5f40 74 6f 72 73 2e 70 79 74 0e 00 00 00 73 69 6d 70 6c 65 5f 63 6f 6e 6a 6f 69 6e c4 03 00 00 73 08 tors.pyt....simple_conjoin....s.
5f60 00 00 00 00 02 13 02 15 08 13 01 63 01 00 00 00 02 00 00 00 05 00 00 00 23 00 00 00 73 6c 00 00 ...........c............#...sl..
5f80 00 74 00 00 88 02 00 83 01 00 89 03 00 64 00 00 67 01 00 88 03 00 14 89 04 00 87 00 00 87 01 00 .t...........d..g...............
5fa0 87 02 00 87 03 00 87 04 00 66 05 00 64 01 00 86 00 00 89 01 00 87 00 00 87 02 00 87 03 00 87 04 .........f..d...................
5fc0 00 66 04 00 64 02 00 86 00 00 89 00 00 78 19 00 88 01 00 64 03 00 83 01 00 44 5d 0b 00 7d 01 00 .f..d........x.....d.....D]..}..
5fe0 7c 01 00 56 01 71 59 00 57 64 00 00 53 28 04 00 00 00 4e 63 01 00 00 00 03 00 00 00 04 00 00 00 |..V.qY.Wd..S(....Nc............
6000 33 00 00 00 73 87 00 00 00 7c 00 00 88 03 00 6b 05 00 72 14 00 88 04 00 56 01 6e 6f 00 88 03 00 3...s....|.....k..r.....V.no....
6020 7c 00 00 18 64 01 00 16 72 67 00 7c 00 00 64 02 00 17 7d 01 00 78 54 00 88 02 00 7c 00 00 19 83 |...d...rg.|..d...}..xT....|....
6040 00 00 44 5d 26 00 88 04 00 7c 00 00 3c 78 19 00 88 01 00 7c 01 00 83 01 00 44 5d 0b 00 7d 02 00 ..D]&....|..<x.....|.....D]..}..
6060 7c 02 00 56 01 71 51 00 57 71 3a 00 57 6e 1c 00 78 19 00 88 00 00 7c 00 00 83 01 00 44 5d 0b 00 |..V.qQ.Wq:.Wn..x.....|.....D]..
6080 7d 02 00 7c 02 00 56 01 71 74 00 57 64 00 00 53 28 03 00 00 00 4e 69 03 00 00 00 69 01 00 00 00 }..|..V.qt.Wd..S(....Ni....i....
60a0 28 00 00 00 00 28 03 00 00 00 52 01 00 00 00 74 03 00 00 00 69 70 31 52 02 00 00 00 28 05 00 00 (....(....R....t....ip1R....(...
60c0 00 74 05 00 00 00 5f 67 65 6e 33 52 03 00 00 00 52 04 00 00 00 74 01 00 00 00 6e 52 05 00 00 00 .t...._gen3R....R....t....nR....
60e0 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 (....s\.../tmp/ndk-User/buildhos
6100 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 t/install/prebuilt/darwin-x86_64
6120 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 /lib/python2.7/test/test_generat
6140 6f 72 73 2e 70 79 52 03 00 00 00 e1 03 00 00 73 12 00 00 00 00 01 0c 01 08 02 0e 01 0a 01 18 01 ors.pyR........s................
6160 13 01 10 03 13 01 63 01 00 00 00 08 00 00 00 06 00 00 00 33 00 00 00 73 fa 00 00 00 7c 00 00 64 ......c............3...s....|..d
6180 01 00 17 7c 00 00 64 02 00 17 7c 00 00 64 03 00 17 03 02 7d 01 00 7d 02 00 7d 03 00 88 01 00 7c ...|..d...|..d.....}..}..}.....|
61a0 00 00 7c 03 00 21 5c 03 00 7d 04 00 7d 05 00 7d 06 00 7c 03 00 88 02 00 6b 05 00 72 92 00 78 b1 ..|..!\..}..}..}..|.....k..r..x.
61c0 00 7c 04 00 83 00 00 44 5d 3f 00 88 03 00 7c 00 00 3c 78 32 00 7c 05 00 83 00 00 44 5d 27 00 88 .|.....D]?....|..<x2.|.....D]'..
61e0 03 00 7c 01 00 3c 78 1a 00 7c 06 00 83 00 00 44 5d 0f 00 88 03 00 7c 02 00 3c 88 03 00 56 01 71 ..|..<x..|.....D].....|..<...V.q
6200 74 00 57 71 60 00 57 71 4c 00 57 6e 64 00 78 61 00 7c 04 00 83 00 00 44 5d 56 00 88 03 00 7c 00 t.Wq`.WqL.Wnd.xa.|.....D]V....|.
6220 00 3c 78 49 00 7c 05 00 83 00 00 44 5d 3e 00 88 03 00 7c 01 00 3c 78 31 00 7c 06 00 83 00 00 44 .<xI.|.....D]>....|..<x1.|.....D
6240 5d 26 00 88 03 00 7c 02 00 3c 78 19 00 88 00 00 7c 03 00 83 01 00 44 5d 0b 00 7d 07 00 7c 07 00 ]&....|..<x.....|.....D]..}..|..
6260 56 01 71 db 00 57 71 c4 00 57 71 b0 00 57 71 9c 00 57 64 00 00 53 28 04 00 00 00 4e 69 01 00 00 V.q..Wq..Wq..Wq..Wd..S(....Ni...
6280 00 69 02 00 00 00 69 03 00 00 00 28 00 00 00 00 28 08 00 00 00 52 01 00 00 00 52 08 00 00 00 74 .i....i....(....(....R....R....t
62a0 03 00 00 00 69 70 32 74 03 00 00 00 69 70 33 74 01 00 00 00 67 74 02 00 00 00 67 31 74 02 00 00 ....ip2t....ip3t....gt....g1t...
62c0 00 67 32 52 02 00 00 00 28 04 00 00 00 52 09 00 00 00 52 04 00 00 00 52 0a 00 00 00 52 05 00 00 .g2R....(....R....R....R....R...
62e0 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f .(....s\.../tmp/ndk-User/buildho
6300 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 st/install/prebuilt/darwin-x86_6
6320 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 4/lib/python2.7/test/test_genera
6340 74 6f 72 73 2e 70 79 52 09 00 00 00 f3 03 00 00 73 18 00 00 00 00 02 20 01 16 02 0c 02 14 01 14 tors.pyR........s...............
6360 01 14 01 14 05 14 01 14 01 14 01 13 01 69 00 00 00 00 28 02 00 00 00 52 00 00 00 00 52 06 00 00 .............i....(....R....R...
6380 00 28 02 00 00 00 52 04 00 00 00 52 02 00 00 00 28 00 00 00 00 28 05 00 00 00 52 09 00 00 00 52 .(....R....R....(....(....R....R
63a0 03 00 00 00 52 04 00 00 00 52 0a 00 00 00 52 05 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b ....R....R....R....s\.../tmp/ndk
63c0 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 -User/buildhost/install/prebuilt
63e0 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 /darwin-x86_64/lib/python2.7/tes
6400 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 07 00 00 00 63 6f 6e 6a 6f 69 6e t/test_generators.pyt....conjoin
6420 d9 03 00 00 73 0c 00 00 00 00 02 0c 01 0d 05 1b 12 18 15 13 01 63 01 00 00 00 07 00 00 00 05 00 ....s................c..........
6440 00 00 63 00 00 00 73 f7 00 00 00 74 00 00 7c 00 00 83 01 00 7d 01 00 64 00 00 67 01 00 7c 01 00 ..c...s....t..|.....}..d..g..|..
6460 14 7d 02 00 64 00 00 67 01 00 7c 01 00 14 7d 03 00 74 02 00 7d 04 00 64 01 00 7d 05 00 78 be 00 .}..d..g..|...}..t..}..d..}..x..
6480 79 46 00 78 3f 00 7c 05 00 7c 01 00 6b 00 00 72 79 00 7c 00 00 7c 05 00 19 83 00 00 6a 03 00 04 yF.x?.|..|..k..ry.|..|......j...
64a0 7d 06 00 7c 03 00 7c 05 00 3c 7c 06 00 83 00 00 7c 02 00 7c 05 00 3c 7c 05 00 64 02 00 37 7d 05 }..|..|..<|.....|..|..<|..d..7}.
64c0 00 71 3b 00 57 57 6e 11 00 04 7c 04 00 6b 0a 00 72 8e 00 01 01 01 6e 06 00 58 7c 02 00 56 01 7c .q;.WWn...|..k..r.....n..X|..V.|
64e0 05 00 64 02 00 38 7d 05 00 78 4f 00 7c 05 00 64 01 00 6b 05 00 72 ee 00 79 20 00 7c 03 00 7c 05 ..d..8}..xO.|..d..k..r..y..|..|.
6500 00 19 83 00 00 7c 02 00 7c 05 00 3c 7c 05 00 64 02 00 37 7d 05 00 50 57 71 a1 00 04 7c 04 00 6b .....|..|..<|..d..7}..PWq...|..k
6520 0a 00 72 ea 00 01 01 01 7c 05 00 64 02 00 38 7d 05 00 71 a1 00 58 71 a1 00 57 50 71 35 00 64 00 ..r.....|..d..8}..q..Xq..WPq5.d.
6540 00 53 28 03 00 00 00 4e 69 00 00 00 00 69 01 00 00 00 28 04 00 00 00 52 00 00 00 00 52 06 00 00 .S(....Ni....i....(....R....R...
6560 00 74 0d 00 00 00 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 74 04 00 00 00 6e 65 78 74 28 07 00 00 .t....StopIterationt....next(...
6580 00 52 04 00 00 00 52 0a 00 00 00 52 05 00 00 00 74 05 00 00 00 69 74 65 72 73 74 0e 00 00 00 5f .R....R....R....t....iterst...._
65a0 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 52 01 00 00 00 74 02 00 00 00 69 74 28 00 00 00 00 28 00 StopIterationR....t....it(....(.
65c0 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f ...s\.../tmp/ndk-User/buildhost/
65e0 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c install/prebuilt/darwin-x86_64/l
6600 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 ib/python2.7/test/test_generator
6620 73 2e 70 79 74 0c 00 00 00 66 6c 61 74 5f 63 6f 6e 6a 6f 69 6e 16 04 00 00 73 2e 00 00 00 00 01 s.pyt....flat_conjoin....s......
6640 0c 01 0d 01 0d 01 06 01 06 01 03 02 03 01 0f 01 18 01 0d 01 12 01 0d 01 04 03 05 03 0a 01 0f 01 ................................
6660 03 01 11 02 0a 01 05 01 0d 02 12 03 74 06 00 00 00 51 75 65 65 6e 73 63 00 00 00 00 00 00 00 00 ............t....Queensc........
6680 01 00 00 00 42 00 00 00 73 23 00 00 00 65 00 00 5a 01 00 64 00 00 84 00 00 5a 02 00 64 01 00 84 ....B...s#...e..Z..d.....Z..d...
66a0 00 00 5a 03 00 64 02 00 84 00 00 5a 04 00 52 53 28 03 00 00 00 63 02 00 00 00 06 00 00 00 08 00 ..Z..d.....Z..RS(....c..........
66c0 00 00 03 00 00 00 73 a9 00 00 00 7c 01 00 88 01 00 5f 00 00 74 01 00 7c 01 00 83 01 00 89 00 00 ......s....|....._..t..|........
66e0 67 00 00 88 01 00 5f 02 00 78 84 00 88 00 00 44 5d 7c 00 7d 02 00 67 00 00 88 00 00 44 5d 44 00 g....._..x.....D]|.}..g.....D]D.
6700 7d 03 00 64 01 00 7c 03 00 3e 64 01 00 7c 01 00 7c 02 00 17 7c 03 00 18 7c 01 00 17 64 02 00 18 }..d..|..>d..|..|...|...|...d...
6720 3e 42 64 01 00 7c 01 00 64 03 00 7c 01 00 14 17 64 02 00 18 7c 02 00 17 7c 03 00 17 3e 42 5e 02 >Bd..|..d..|....d...|...|...>B^.
6740 00 71 32 00 7d 04 00 7c 04 00 87 00 00 87 01 00 66 02 00 64 04 00 86 01 00 7d 05 00 88 01 00 6a .q2.}..|........f..d.....}.....j
6760 02 00 6a 03 00 7c 05 00 83 01 00 01 71 25 00 57 64 00 00 53 28 05 00 00 00 4e 6c 01 00 00 00 01 ..j..|......q%.Wd..S(....Nl.....
6780 00 69 01 00 00 00 69 02 00 00 00 63 01 00 00 00 03 00 00 00 04 00 00 00 33 00 00 00 73 59 00 00 .i....i....c............3...sY..
67a0 00 78 52 00 88 00 00 44 5d 4a 00 7d 01 00 7c 00 00 7c 01 00 19 7d 02 00 7c 02 00 88 01 00 6a 00 .xR....D]J.}..|..|...}..|.....j.
67c0 00 40 64 01 00 6b 02 00 72 07 00 88 01 00 04 6a 00 00 7c 02 00 4f 02 5f 00 00 7c 01 00 56 01 88 .@d..k..r......j..|..O._..|..V..
67e0 01 00 04 6a 00 00 7c 02 00 0f 4d 02 5f 00 00 71 07 00 71 07 00 57 64 00 00 53 28 02 00 00 00 4e ...j..|...M._..q..q..Wd..S(....N
6800 69 00 00 00 00 28 01 00 00 00 74 04 00 00 00 75 73 65 64 28 03 00 00 00 74 07 00 00 00 72 6f 77 i....(....t....used(....t....row
6820 75 73 65 73 74 01 00 00 00 6a 74 04 00 00 00 75 73 65 73 28 02 00 00 00 74 06 00 00 00 72 61 6e usest....jt....uses(....t....ran
6840 67 65 6e 74 04 00 00 00 73 65 6c 66 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 gent....self(....s\.../tmp/ndk-U
6860 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 ser/buildhost/install/prebuilt/d
6880 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f arwin-x86_64/lib/python2.7/test/
68a0 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 06 00 00 00 72 6f 77 67 65 6e 51 04 00 test_generators.pyt....rowgenQ..
68c0 00 73 0c 00 00 00 00 01 0d 01 0a 01 13 01 0f 01 05 01 28 04 00 00 00 52 0a 00 00 00 74 05 00 00 .s................(....R....t...
68e0 00 72 61 6e 67 65 74 0d 00 00 00 72 6f 77 67 65 6e 65 72 61 74 6f 72 73 74 06 00 00 00 61 70 70 .ranget....rowgeneratorst....app
6900 65 6e 64 28 06 00 00 00 52 1d 00 00 00 52 0a 00 00 00 52 01 00 00 00 52 1a 00 00 00 52 19 00 00 end(....R....R....R....R....R...
6920 00 52 1e 00 00 00 28 00 00 00 00 28 02 00 00 00 52 1c 00 00 00 52 1d 00 00 00 73 5c 00 00 00 2f .R....(....(....R....R....s\.../
6940 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 tmp/ndk-User/buildhost/install/p
6960 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e rebuilt/darwin-x86_64/lib/python
6980 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 08 00 00 00 2.7/test/test_generators.pyt....
69a0 5f 5f 69 6e 69 74 5f 5f 3b 04 00 00 73 10 00 00 00 00 01 09 01 0c 0d 09 01 0d 01 03 03 4e 02 15 __init__;...s................N..
69c0 08 63 01 00 00 00 02 00 00 00 02 00 00 00 63 00 00 00 73 2c 00 00 00 64 01 00 7c 00 00 5f 00 00 .c............c...s,...d..|.._..
69e0 78 1c 00 74 01 00 7c 00 00 6a 02 00 83 01 00 44 5d 0b 00 7d 01 00 7c 01 00 56 01 71 19 00 57 64 x..t..|..j.....D]..}..|..V.q..Wd
6a00 00 00 53 28 02 00 00 00 4e 69 00 00 00 00 28 03 00 00 00 52 18 00 00 00 52 10 00 00 00 52 20 00 ..S(....Ni....(....R....R....R..
6a20 00 00 28 02 00 00 00 52 1d 00 00 00 74 07 00 00 00 72 6f 77 32 63 6f 6c 28 00 00 00 00 28 00 00 ..(....R....t....row2col(....(..
6a40 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 ..s\.../tmp/ndk-User/buildhost/i
6a60 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 nstall/prebuilt/darwin-x86_64/li
6a80 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 b/python2.7/test/test_generators
6aa0 2e 70 79 74 05 00 00 00 73 6f 6c 76 65 5c 04 00 00 73 06 00 00 00 00 01 09 01 16 01 63 02 00 00 .pyt....solve\...s..........c...
6ac0 00 07 00 00 00 05 00 00 00 43 00 00 00 73 7f 00 00 00 7c 00 00 6a 00 00 7d 02 00 64 01 00 64 02 .........C...s....|..j..}..d..d.
6ae0 00 7c 02 00 14 17 7d 03 00 7c 03 00 47 48 78 5c 00 74 01 00 7c 02 00 83 01 00 44 5d 4e 00 7d 04 .|....}..|..GHx\.t..|.....D]N.}.
6b00 00 67 00 00 74 01 00 7c 02 00 83 01 00 44 5d 0c 00 7d 05 00 64 03 00 5e 02 00 71 3c 00 7d 06 00 .g..t..|.....D]..}..d..^..q<.}..
6b20 64 04 00 7c 06 00 7c 01 00 7c 04 00 19 3c 64 05 00 64 05 00 6a 02 00 7c 06 00 83 01 00 17 64 05 d..|..|..|...<d..d..j..|......d.
6b40 00 17 47 48 7c 03 00 47 48 71 29 00 57 64 00 00 53 28 06 00 00 00 4e 74 01 00 00 00 2b 73 02 00 ..GH|..GHq).Wd..S(....Nt....+s..
6b60 00 00 2d 2b 74 01 00 00 00 20 74 01 00 00 00 51 74 01 00 00 00 7c 28 03 00 00 00 52 0a 00 00 00 ..-+t.....t....Qt....|(....R....
6b80 52 1f 00 00 00 74 04 00 00 00 6a 6f 69 6e 28 07 00 00 00 52 1d 00 00 00 52 23 00 00 00 52 0a 00 R....t....join(....R....R#...R..
6ba0 00 00 74 03 00 00 00 73 65 70 52 01 00 00 00 52 1a 00 00 00 74 07 00 00 00 73 71 75 61 72 65 73 ..t....sepR....R....t....squares
6bc0 28 00 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 (....(....s\.../tmp/ndk-User/bui
6be0 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 ldhost/install/prebuilt/darwin-x
6c00 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 86_64/lib/python2.7/test/test_ge
6c20 6e 65 72 61 74 6f 72 73 2e 70 79 74 0d 00 00 00 70 72 69 6e 74 73 6f 6c 75 74 69 6f 6e 61 04 00 nerators.pyt....printsolutiona..
6c40 00 73 10 00 00 00 00 01 09 02 0e 01 05 01 13 01 1f 01 0e 01 16 01 28 05 00 00 00 74 08 00 00 00 .s....................(....t....
6c60 5f 5f 6e 61 6d 65 5f 5f 74 0a 00 00 00 5f 5f 6d 6f 64 75 6c 65 5f 5f 52 22 00 00 00 52 24 00 00 __name__t....__module__R"...R$..
6c80 00 52 2c 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e .R,...(....(....(....s\.../tmp/n
6ca0 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 dk-User/buildhost/install/prebui
6cc0 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 lt/darwin-x86_64/lib/python2.7/t
6ce0 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 52 17 00 00 00 3a 04 00 00 73 est/test_generators.pyR....:...s
6d00 06 00 00 00 06 01 09 21 09 05 74 07 00 00 00 4b 6e 69 67 68 74 73 63 00 00 00 00 00 00 00 00 02 .......!..t....Knightsc.........
6d20 00 00 00 42 00 00 00 73 41 00 00 00 65 00 00 5a 01 00 64 00 00 64 01 00 84 01 00 5a 02 00 64 02 ...B...sA...e..Z..d..d.....Z..d.
6d40 00 84 00 00 5a 03 00 64 03 00 84 00 00 5a 04 00 64 04 00 84 00 00 5a 05 00 64 05 00 84 00 00 5a ....Z..d.....Z..d.....Z..d.....Z
6d60 06 00 64 06 00 84 00 00 5a 07 00 52 53 28 07 00 00 00 69 00 00 00 00 63 04 00 00 00 09 00 00 00 ..d.....Z..RS(....i....c........
6d80 07 00 00 00 03 00 00 00 73 30 01 00 00 88 01 00 88 02 00 02 88 04 00 5f 00 00 88 04 00 5f 01 00 ........s0............._....._..
6da0 67 00 00 04 89 05 00 88 04 00 5f 02 00 74 03 00 87 05 00 66 01 00 64 01 00 86 01 00 89 03 00 87 g........._..t.....f..d.........
6dc0 05 00 66 01 00 64 02 00 86 00 00 89 00 00 87 00 00 87 01 00 87 02 00 87 03 00 87 04 00 66 05 00 ..f..d.......................f..
6de0 64 03 00 86 00 00 7d 04 00 87 00 00 87 01 00 87 02 00 87 03 00 87 04 00 87 05 00 66 06 00 64 04 d.....}....................f..d.
6e00 00 86 00 00 7d 05 00 74 03 00 87 00 00 87 03 00 87 04 00 87 05 00 66 04 00 64 05 00 86 01 00 7d ....}..t..............f..d.....}
6e20 06 00 88 01 00 64 06 00 18 64 07 00 15 88 02 00 64 06 00 18 64 07 00 15 74 03 00 87 00 00 87 03 .....d...d......d...d...t.......
6e40 00 87 04 00 87 05 00 66 04 00 64 08 00 86 03 00 7d 07 00 87 04 00 87 05 00 66 02 00 64 09 00 86 .......f..d.....}........f..d...
6e60 00 00 7d 08 00 88 01 00 88 02 00 14 64 0a 00 6b 00 00 72 f7 00 7c 04 00 67 01 00 88 04 00 5f 04 ..}.........d..k..r..|..g....._.
6e80 00 6e 35 00 7c 04 00 7c 05 00 67 02 00 7c 03 00 72 0c 01 7c 07 00 70 0f 01 7c 06 00 67 01 00 88 .n5.|..|..g..|..r..|..p..|..g...
6ea0 01 00 88 02 00 14 64 0b 00 18 14 17 7c 08 00 67 01 00 17 88 04 00 5f 04 00 64 00 00 53 28 0c 00 ......d.....|..g......_..d..S(..
6ec0 00 00 4e 63 02 00 00 00 07 00 00 00 03 00 00 00 13 00 00 00 73 8a 00 00 00 64 01 00 04 7d 02 00 ..Nc................s....d...}..
6ee0 7d 03 00 78 67 00 88 00 00 7c 00 00 19 44 5d 5b 00 7d 04 00 88 00 00 7c 04 00 19 7d 05 00 7c 05 }..xg....|...D][.}.....|...}..|.
6f00 00 6a 00 00 7c 00 00 83 01 00 01 7c 01 00 7c 05 00 83 01 00 7d 06 00 7c 06 00 64 01 00 6b 02 00 .j..|......|..|.....}..|..d..k..
6f20 72 57 00 7c 02 00 64 02 00 37 7d 02 00 71 15 00 7c 06 00 64 02 00 6b 02 00 72 15 00 7c 03 00 64 rW.|..d..7}..q..|..d..k..r..|..d
6f40 02 00 37 7d 03 00 71 15 00 71 15 00 57 7c 02 00 64 01 00 6b 02 00 6f 89 00 7c 03 00 64 03 00 6b ..7}..q..q..W|..d..k..o..|..d..k
6f60 00 00 53 28 04 00 00 00 4e 69 00 00 00 00 69 01 00 00 00 69 02 00 00 00 28 01 00 00 00 74 06 00 ..S(....Ni....i....i....(....t..
6f80 00 00 72 65 6d 6f 76 65 28 07 00 00 00 74 02 00 00 00 69 30 52 00 00 00 00 74 03 00 00 00 6e 65 ..remove(....t....i0R....t....ne
6fa0 30 74 03 00 00 00 6e 65 31 52 01 00 00 00 74 01 00 00 00 73 74 01 00 00 00 65 28 01 00 00 00 74 0t....ne1R....t....st....e(....t
6fc0 05 00 00 00 73 75 63 63 73 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 ....succs(....s\.../tmp/ndk-User
6fe0 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 /buildhost/install/prebuilt/darw
7000 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 in-x86_64/lib/python2.7/test/tes
7020 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 16 00 00 00 72 65 6d 6f 76 65 5f 66 72 6f 6d 5f t_generators.pyt....remove_from_
7040 73 75 63 63 65 73 73 6f 72 73 7d 04 00 00 73 14 00 00 00 00 09 0a 01 11 01 0a 01 0d 01 0c 01 0c successors}...s.................
7060 01 0d 01 0c 01 11 01 63 01 00 00 00 02 00 00 00 03 00 00 00 13 00 00 00 73 2a 00 00 00 78 23 00 .......c................s*...x#.
7080 88 00 00 7c 00 00 19 44 5d 17 00 7d 01 00 88 00 00 7c 01 00 19 6a 00 00 7c 00 00 83 01 00 01 71 ...|...D]..}.....|...j..|......q
70a0 0b 00 57 64 00 00 53 28 01 00 00 00 4e 28 01 00 00 00 52 21 00 00 00 28 02 00 00 00 52 31 00 00 ..Wd..S(....N(....R!...(....R1..
70c0 00 52 01 00 00 00 28 01 00 00 00 52 36 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e .R....(....R6...(....s\.../tmp/n
70e0 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 dk-User/buildhost/install/prebui
7100 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 lt/darwin-x86_64/lib/python2.7/t
7120 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 11 00 00 00 61 64 64 5f 74 est/test_generators.pyt....add_t
7140 6f 5f 73 75 63 63 65 73 73 6f 72 73 93 04 00 00 73 04 00 00 00 00 01 11 01 63 00 00 00 00 01 00 o_successors....s........c......
7160 00 00 04 00 00 00 33 00 00 00 73 54 00 00 00 88 01 00 64 01 00 6b 00 00 73 18 00 88 02 00 64 01 ......3...sT......d..k..s.....d.
7180 00 6b 00 00 72 1c 00 64 00 00 53 88 04 00 6a 00 00 64 02 00 64 02 00 83 02 00 7d 00 00 88 03 00 .k..r..d..S...j..d..d.....}.....
71a0 7c 00 00 83 01 00 01 7c 00 00 88 04 00 5f 01 00 7c 00 00 56 01 88 00 00 7c 00 00 83 01 00 01 64 |......|....._..|..V....|......d
71c0 00 00 53 28 03 00 00 00 4e 69 01 00 00 00 69 00 00 00 00 28 02 00 00 00 74 0c 00 00 00 63 6f 6f ..S(....Ni....i....(....t....coo
71e0 72 64 73 32 69 6e 64 65 78 74 06 00 00 00 6c 61 73 74 69 6a 28 01 00 00 00 74 06 00 00 00 63 6f rds2indext....lastij(....t....co
7200 72 6e 65 72 28 05 00 00 00 52 38 00 00 00 74 01 00 00 00 6d 52 0a 00 00 00 52 37 00 00 00 52 1d rner(....R8...t....mR....R7...R.
7220 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 ...(....s\.../tmp/ndk-User/build
7240 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 host/install/prebuilt/darwin-x86
7260 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 _64/lib/python2.7/test/test_gene
7280 72 61 74 6f 72 73 2e 70 79 74 05 00 00 00 66 69 72 73 74 98 04 00 00 73 0e 00 00 00 00 01 18 01 rators.pyt....first....s........
72a0 04 04 12 01 0a 01 09 01 05 01 63 00 00 00 00 05 00 00 00 06 00 00 00 33 00 00 00 73 c8 00 00 00 ..........c............3...s....
72c0 88 04 00 6a 00 00 64 01 00 64 01 00 83 02 00 7d 00 00 88 01 00 64 02 00 6b 00 00 73 2a 00 88 02 ...j..d..d.....}.....d..k..s*...
72e0 00 64 02 00 6b 00 00 72 2e 00 64 00 00 53 78 93 00 64 05 00 64 06 00 66 02 00 44 5d 85 00 5c 02 .d..k..r..d..Sx..d..d..f..D]..\.
7300 00 7d 01 00 7d 02 00 88 04 00 6a 00 00 7c 01 00 7c 02 00 83 02 00 7d 03 00 88 04 00 6a 00 00 64 .}..}.....j..|..|.....}.....j..d
7320 02 00 7c 01 00 18 64 02 00 7c 02 00 18 83 02 00 7d 04 00 7c 04 00 88 04 00 5f 01 00 88 03 00 7c ..|...d..|......}..|....._.....|
7340 03 00 83 01 00 01 88 05 00 7c 04 00 19 6a 02 00 7c 00 00 83 01 00 01 7c 03 00 88 04 00 5f 03 00 .........|...j..|......|....._..
7360 7c 03 00 56 01 88 05 00 7c 04 00 19 6a 04 00 7c 00 00 83 01 00 01 88 00 00 7c 03 00 83 01 00 01 |..V....|...j..|.........|......
7380 71 3b 00 57 64 00 00 53 28 07 00 00 00 4e 69 00 00 00 00 69 03 00 00 00 69 01 00 00 00 69 02 00 q;.Wd..S(....Ni....i....i....i..
73a0 00 00 28 02 00 00 00 69 01 00 00 00 69 02 00 00 00 28 02 00 00 00 69 02 00 00 00 69 01 00 00 00 ..(....i....i....(....i....i....
73c0 28 05 00 00 00 52 39 00 00 00 74 05 00 00 00 66 69 6e 61 6c 52 21 00 00 00 52 3a 00 00 00 52 30 (....R9...t....finalR!...R:...R0
73e0 00 00 00 28 05 00 00 00 52 3b 00 00 00 52 01 00 00 00 52 1a 00 00 00 74 04 00 00 00 74 68 69 73 ...(....R;...R....R....t....this
7400 52 3e 00 00 00 28 06 00 00 00 52 38 00 00 00 52 3c 00 00 00 52 0a 00 00 00 52 37 00 00 00 52 1d R>...(....R8...R<...R....R7...R.
7420 00 00 00 52 36 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f ...R6...(....s\.../tmp/ndk-User/
7440 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 buildhost/install/prebuilt/darwi
7460 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 n-x86_64/lib/python2.7/test/test
7480 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 06 00 00 00 73 65 63 6f 6e 64 a5 04 00 00 73 1a 00 _generators.pyt....second....s..
74a0 00 00 00 01 12 02 18 01 04 08 19 01 12 01 1a 01 09 02 0a 01 11 01 09 01 05 01 11 01 63 01 00 00 ............................c...
74c0 00 04 00 00 00 04 00 00 00 33 00 00 00 73 be 00 00 00 67 00 00 7d 01 00 78 61 00 88 03 00 88 02 .........3...s....g..}..xa......
74e0 00 6a 00 00 19 44 5d 48 00 7d 02 00 7c 00 00 88 03 00 7c 02 00 19 83 01 00 7d 03 00 7c 03 00 64 .j...D]H.}..|.....|......}..|..d
7500 01 00 6b 02 00 72 49 00 7c 03 00 7c 02 00 66 02 00 67 01 00 7d 01 00 50 6e 00 00 7c 01 00 6a 01 ..k..rI.|..|..f..g..}..Pn..|..j.
7520 00 7c 03 00 7c 02 00 66 02 00 83 01 00 01 71 14 00 57 7c 01 00 6a 02 00 83 00 00 01 78 4d 00 7c .|..|..f......q..W|..j......xM.|
7540 01 00 44 5d 45 00 5c 02 00 7d 03 00 7d 02 00 7c 02 00 88 02 00 6a 03 00 6b 03 00 72 71 00 88 01 ..D]E.\..}..}..|.....j..k..rq...
7560 00 7c 02 00 83 01 00 72 a9 00 7c 02 00 88 02 00 5f 00 00 7c 02 00 56 01 6e 00 00 88 00 00 7c 02 .|.....r..|....._..|..V.n.....|.
7580 00 83 01 00 01 71 71 00 71 71 00 57 64 00 00 53 28 02 00 00 00 4e 69 01 00 00 00 28 04 00 00 00 .....qq.qq.Wd..S(....Ni....(....
75a0 52 3a 00 00 00 52 21 00 00 00 74 04 00 00 00 73 6f 72 74 52 3e 00 00 00 28 04 00 00 00 52 00 00 R:...R!...t....sortR>...(....R..
75c0 00 00 74 0a 00 00 00 63 61 6e 64 69 64 61 74 65 73 52 01 00 00 00 52 35 00 00 00 28 04 00 00 00 ..t....candidatesR....R5...(....
75e0 52 38 00 00 00 52 37 00 00 00 52 1d 00 00 00 52 36 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 R8...R7...R....R6...(....s\.../t
7600 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 mp/ndk-User/buildhost/install/pr
7620 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 ebuilt/darwin-x86_64/lib/python2
7640 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 07 00 00 00 61 .7/test/test_generators.pyt....a
7660 64 76 61 6e 63 65 be 04 00 00 73 1c 00 00 00 00 03 06 01 14 01 10 02 0c 01 0f 01 04 01 17 02 0a dvance....s.....................
7680 02 13 01 0f 01 0c 01 09 01 08 01 69 01 00 00 00 67 00 00 00 00 00 00 00 40 63 03 00 00 00 09 00 ...........i....g.......@c......
76a0 00 00 05 00 00 00 33 00 00 00 73 f7 00 00 00 67 00 00 7d 03 00 78 97 00 88 03 00 88 02 00 6a 00 ......3...s....g..}..x........j.
76c0 00 19 44 5d 7e 00 7d 04 00 7c 02 00 88 03 00 7c 04 00 19 83 01 00 7d 05 00 7c 05 00 64 01 00 6b ..D]~.}..|.....|......}..|..d..k
76e0 02 00 72 4c 00 7c 05 00 64 02 00 7c 04 00 66 03 00 67 01 00 7d 03 00 50 6e 00 00 88 02 00 6a 01 ..rL.|..d..|..f..g..}..Pn.....j.
7700 00 7c 04 00 83 01 00 5c 02 00 7d 06 00 7d 07 00 7c 06 00 7c 00 00 18 64 03 00 13 7c 07 00 7c 01 .|.....\..}..}..|..|...d...|..|.
7720 00 18 64 03 00 13 17 7d 08 00 7c 03 00 6a 02 00 7c 05 00 7c 08 00 0b 7c 04 00 66 03 00 83 01 00 ..d....}..|..j..|..|...|..f.....
7740 01 71 14 00 57 7c 03 00 6a 03 00 83 00 00 01 78 50 00 7c 03 00 44 5d 48 00 5c 03 00 7d 05 00 7d .q..W|..j......xP.|..D]H.\..}..}
7760 08 00 7d 04 00 7c 04 00 88 02 00 6a 04 00 6b 03 00 72 a7 00 88 01 00 7c 04 00 83 01 00 72 e2 00 ..}..|.....j..k..r.....|.....r..
7780 7c 04 00 88 02 00 5f 00 00 7c 04 00 56 01 6e 00 00 88 00 00 7c 04 00 83 01 00 01 71 a7 00 71 a7 |....._..|..V.n.....|......q..q.
77a0 00 57 64 00 00 53 28 04 00 00 00 4e 69 01 00 00 00 69 00 00 00 00 69 02 00 00 00 28 05 00 00 00 .Wd..S(....Ni....i....i....(....
77c0 52 3a 00 00 00 74 0c 00 00 00 69 6e 64 65 78 32 63 6f 6f 72 64 73 52 21 00 00 00 52 41 00 00 00 R:...t....index2coordsR!...RA...
77e0 52 3e 00 00 00 28 09 00 00 00 74 04 00 00 00 76 6d 69 64 74 04 00 00 00 68 6d 69 64 52 00 00 00 R>...(....t....vmidt....hmidR...
7800 00 52 42 00 00 00 52 01 00 00 00 52 35 00 00 00 74 02 00 00 00 69 31 74 02 00 00 00 6a 31 74 01 .RB...R....R5...t....i1t....j1t.
7820 00 00 00 64 28 04 00 00 00 52 38 00 00 00 52 37 00 00 00 52 1d 00 00 00 52 36 00 00 00 28 00 00 ...d(....R8...R7...R....R6...(..
7840 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 ..s\.../tmp/ndk-User/buildhost/i
7860 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 nstall/prebuilt/darwin-x86_64/li
7880 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 b/python2.7/test/test_generators
78a0 2e 70 79 74 0c 00 00 00 61 64 76 61 6e 63 65 5f 68 61 72 64 d8 04 00 00 73 20 00 00 00 00 05 06 .pyt....advance_hard....s.......
78c0 01 14 01 10 02 0c 01 12 01 04 01 15 01 1a 01 1b 02 0a 02 16 01 0f 01 0c 01 09 01 08 01 63 00 00 .............................c..
78e0 00 00 00 00 00 00 01 00 00 00 33 00 00 00 73 0c 00 00 00 88 00 00 6a 00 00 56 01 64 00 00 53 28 ..........3...s.......j..V.d..S(
7900 01 00 00 00 4e 28 01 00 00 00 52 3e 00 00 00 28 00 00 00 00 28 02 00 00 00 52 1d 00 00 00 52 36 ....N(....R>...(....(....R....R6
7920 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 ...(....s\.../tmp/ndk-User/build
7940 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 host/install/prebuilt/darwin-x86
7960 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 _64/lib/python2.7/test/test_gene
7980 72 61 74 6f 72 73 2e 70 79 74 04 00 00 00 6c 61 73 74 f2 04 00 00 73 02 00 00 00 00 02 69 04 00 rators.pyt....last....s......i..
79a0 00 00 69 03 00 00 00 28 05 00 00 00 52 3c 00 00 00 52 0a 00 00 00 52 36 00 00 00 52 00 00 00 00 ..i....(....R<...R....R6...R....
79c0 74 10 00 00 00 73 71 75 61 72 65 67 65 6e 65 72 61 74 6f 72 73 28 09 00 00 00 52 1d 00 00 00 52 t....squaregenerators(....R....R
79e0 3c 00 00 00 52 0a 00 00 00 74 04 00 00 00 68 61 72 64 52 3d 00 00 00 52 40 00 00 00 52 43 00 00 <...R....t....hardR=...R@...RC..
7a00 00 52 4a 00 00 00 52 4b 00 00 00 28 00 00 00 00 28 06 00 00 00 52 38 00 00 00 52 3c 00 00 00 52 .RJ...RK...(....(....R8...R<...R
7a20 0a 00 00 00 52 37 00 00 00 52 1d 00 00 00 52 36 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b ....R7...R....R6...s\.../tmp/ndk
7a40 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 -User/buildhost/install/prebuilt
7a60 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 /darwin-x86_64/lib/python2.7/tes
7a80 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 52 22 00 00 00 72 04 00 00 73 1a 00 t/test_generators.pyR"...r...s..
7aa0 00 00 00 01 13 04 0d 06 12 16 0f 05 1b 0d 1e 19 1b 1a 31 1a 12 04 10 01 0f 03 28 01 63 03 00 00 ..................1.......(.c...
7ac0 00 03 00 00 00 02 00 00 00 43 00 00 00 73 0f 00 00 00 7c 01 00 7c 00 00 6a 00 00 14 7c 02 00 17 .........C...s....|..|..j...|...
7ae0 53 28 01 00 00 00 4e 28 01 00 00 00 52 0a 00 00 00 28 03 00 00 00 52 1d 00 00 00 52 01 00 00 00 S(....N(....R....(....R....R....
7b00 52 1a 00 00 00 28 00 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 R....(....(....s\.../tmp/ndk-Use
7b20 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 r/buildhost/install/prebuilt/dar
7b40 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 win-x86_64/lib/python2.7/test/te
7b60 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 52 39 00 00 00 fd 04 00 00 73 02 00 00 00 00 03 st_generators.pyR9.......s......
7b80 63 02 00 00 00 02 00 00 00 03 00 00 00 43 00 00 00 73 10 00 00 00 74 00 00 7c 01 00 7c 00 00 6a c............C...s....t..|..|..j
7ba0 01 00 83 02 00 53 28 01 00 00 00 4e 28 02 00 00 00 74 06 00 00 00 64 69 76 6d 6f 64 52 0a 00 00 .....S(....N(....t....divmodR...
7bc0 00 28 02 00 00 00 52 1d 00 00 00 74 05 00 00 00 69 6e 64 65 78 28 00 00 00 00 28 00 00 00 00 73 .(....R....t....index(....(....s
7be0 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 \.../tmp/ndk-User/buildhost/inst
7c00 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 all/prebuilt/darwin-x86_64/lib/p
7c20 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 ython2.7/test/test_generators.py
7c40 52 44 00 00 00 02 05 00 00 73 02 00 00 00 00 02 63 01 00 00 00 0c 00 00 00 0b 00 00 00 43 00 00 RD.......s......c............C..
7c60 00 73 fc 00 00 00 7c 00 00 6a 00 00 7d 01 00 7c 01 00 32 7c 00 00 6a 01 00 7c 00 00 6a 02 00 02 .s....|..j..}..|..2|..j..|..j...
7c80 7d 02 00 7d 03 00 7c 00 00 6a 03 00 7d 04 00 64 06 00 64 07 00 64 08 00 64 09 00 64 0a 00 64 0b }..}..|..j..}..d..d..d..d..d..d.
7ca0 00 64 0c 00 64 0d 00 67 08 00 7d 05 00 74 04 00 7c 03 00 83 01 00 7d 06 00 78 a2 00 74 04 00 7c .d..d..g..}..t..|.....}..x..t..|
7cc0 02 00 83 01 00 44 5d 94 00 7d 07 00 78 8b 00 7c 06 00 44 5d 83 00 7d 08 00 67 00 00 7c 05 00 44 .....D]..}..x..|..D]..}..g..|..D
7ce0 5d 63 00 5c 02 00 7d 09 00 7d 0a 00 64 05 00 7c 07 00 7c 09 00 17 04 03 6b 01 00 6f a1 00 7c 02 ]c.\..}..}..d..|..|.....k..o..|.
7d00 00 6b 00 00 6e 02 00 02 01 72 7a 00 64 05 00 7c 08 00 7c 0a 00 17 04 03 6b 01 00 6f c1 00 7c 03 .k..n....rz.d..|..|.....k..o..|.
7d20 00 6b 00 00 6e 02 00 02 01 72 7a 00 7c 04 00 7c 07 00 7c 09 00 17 7c 08 00 7c 0a 00 17 83 02 00 .k..n....rz.|..|..|...|..|......
7d40 5e 02 00 71 7a 00 7d 0b 00 7c 01 00 6a 05 00 7c 0b 00 83 01 00 01 71 6d 00 57 71 60 00 57 64 00 ^..qz.}..|..j..|......qm.Wq`.Wd.
7d60 00 53 28 0e 00 00 00 4e 69 01 00 00 00 69 02 00 00 00 69 ff ff ff ff 69 fe ff ff ff 69 00 00 00 .S(....Ni....i....i....i....i...
7d80 00 28 02 00 00 00 69 01 00 00 00 69 02 00 00 00 28 02 00 00 00 69 02 00 00 00 69 01 00 00 00 28 .(....i....i....(....i....i....(
7da0 02 00 00 00 69 02 00 00 00 69 ff ff ff ff 28 02 00 00 00 69 01 00 00 00 69 fe ff ff ff 28 02 00 ....i....i....(....i....i....(..
7dc0 00 00 69 ff ff ff ff 69 fe ff ff ff 28 02 00 00 00 69 fe ff ff ff 69 ff ff ff ff 28 02 00 00 00 ..i....i....(....i....i....(....
7de0 69 fe ff ff ff 69 01 00 00 00 28 02 00 00 00 69 ff ff ff ff 69 02 00 00 00 28 06 00 00 00 52 36 i....i....(....i....i....(....R6
7e00 00 00 00 52 3c 00 00 00 52 0a 00 00 00 52 39 00 00 00 52 1f 00 00 00 52 21 00 00 00 28 0c 00 00 ...R<...R....R9...R....R!...(...
7e20 00 52 1d 00 00 00 52 36 00 00 00 52 3c 00 00 00 52 0a 00 00 00 74 03 00 00 00 63 32 69 74 07 00 .R....R6...R<...R....t....c2it..
7e40 00 00 6f 66 66 73 65 74 73 52 1c 00 00 00 52 01 00 00 00 52 1a 00 00 00 74 02 00 00 00 69 6f 74 ..offsetsR....R....R....t....iot
7e60 02 00 00 00 6a 6f 52 34 00 00 00 28 00 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e ....joR4...(....(....s\.../tmp/n
7e80 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 dk-User/buildhost/install/prebui
7ea0 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 lt/darwin-x86_64/lib/python2.7/t
7ec0 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 0b 00 00 00 5f 69 6e 69 74 est/test_generators.pyt...._init
7ee0 5f 62 6f 61 72 64 06 05 00 00 73 1a 00 00 00 00 01 09 01 04 01 13 01 09 02 0c 01 12 01 0c 01 13 _board....s.....................
7f00 01 0d 01 13 01 20 01 3d 01 63 01 00 00 00 02 00 00 00 02 00 00 00 63 00 00 00 73 2d 00 00 00 7c .......=.c............c...s-...|
7f20 00 00 6a 00 00 83 00 00 01 78 1c 00 74 01 00 7c 00 00 6a 02 00 83 01 00 44 5d 0b 00 7d 01 00 7c ..j......x..t..|..j.....D]..}..|
7f40 01 00 56 01 71 1a 00 57 64 00 00 53 28 01 00 00 00 4e 28 03 00 00 00 52 54 00 00 00 52 10 00 00 ..V.q..Wd..S(....N(....RT...R...
7f60 00 52 4c 00 00 00 28 02 00 00 00 52 1d 00 00 00 52 02 00 00 00 28 00 00 00 00 28 00 00 00 00 73 .RL...(....R....R....(....(....s
7f80 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 \.../tmp/ndk-User/buildhost/inst
7fa0 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 all/prebuilt/darwin-x86_64/lib/p
7fc0 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 ython2.7/test/test_generators.py
7fe0 52 24 00 00 00 17 05 00 00 73 06 00 00 00 00 01 0a 01 16 01 63 02 00 00 00 0d 00 00 00 04 00 00 R$.......s..........c...........
8000 00 43 00 00 00 73 06 01 00 00 7c 00 00 6a 00 00 7c 00 00 6a 01 00 02 7d 02 00 7d 03 00 74 02 00 .C...s....|..j..|..j...}..}..t..
8020 74 03 00 7c 02 00 7c 03 00 14 83 01 00 83 01 00 7d 04 00 64 01 00 74 03 00 7c 04 00 83 01 00 17 t..|..|.........}..d..t..|......
8040 64 02 00 17 7d 05 00 67 00 00 74 04 00 7c 02 00 83 01 00 44 5d 13 00 7d 06 00 64 00 00 67 01 00 d...}..g..t..|.....D]..}..d..g..
8060 7c 03 00 14 5e 02 00 71 4a 00 7d 07 00 64 03 00 7d 08 00 78 3f 00 7c 01 00 44 5d 37 00 7d 06 00 |...^..qJ.}..d..}..x?.|..D]7.}..
8080 7c 00 00 6a 06 00 7c 06 00 83 01 00 5c 02 00 7d 09 00 7d 0a 00 7c 05 00 7c 08 00 16 7c 07 00 7c |..j..|.....\..}..}..|..|...|..|
80a0 09 00 19 7c 0a 00 3c 7c 08 00 64 03 00 37 7d 08 00 71 70 00 57 64 04 00 64 05 00 7c 04 00 14 64 ...|..<|..d..7}..qp.Wd..d..|...d
80c0 04 00 17 7c 03 00 14 17 7d 0b 00 7c 0b 00 47 48 78 39 00 74 04 00 7c 02 00 83 01 00 44 5d 2b 00 ...|....}..|..GHx9.t..|.....D]+.
80e0 7d 06 00 7c 07 00 7c 06 00 19 7d 0c 00 64 06 00 64 06 00 6a 07 00 7c 0c 00 83 01 00 17 64 06 00 }..|..|...}..d..d..j..|......d..
8100 17 47 48 7c 0b 00 47 48 71 d3 00 57 64 00 00 53 28 07 00 00 00 4e 74 01 00 00 00 25 52 49 00 00 .GH|..GHq..Wd..S(....Nt....%RI..
8120 00 69 01 00 00 00 52 25 00 00 00 74 01 00 00 00 2d 52 28 00 00 00 28 08 00 00 00 52 3c 00 00 00 .i....R%...t....-R(...(....R<...
8140 52 0a 00 00 00 52 00 00 00 00 74 03 00 00 00 73 74 72 52 1f 00 00 00 52 06 00 00 00 52 44 00 00 R....R....t....strR....R....RD..
8160 00 52 29 00 00 00 28 0d 00 00 00 52 1d 00 00 00 52 02 00 00 00 52 3c 00 00 00 52 0a 00 00 00 74 .R)...(....R....R....R<...R....t
8180 01 00 00 00 77 74 06 00 00 00 66 6f 72 6d 61 74 52 01 00 00 00 52 2b 00 00 00 74 01 00 00 00 6b ....wt....formatR....R+...t....k
81a0 52 47 00 00 00 52 48 00 00 00 52 2a 00 00 00 74 03 00 00 00 72 6f 77 28 00 00 00 00 28 00 00 00 RG...RH...R*...t....row(....(...
81c0 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e .s\.../tmp/ndk-User/buildhost/in
81e0 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 stall/prebuilt/darwin-x86_64/lib
8200 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e /python2.7/test/test_generators.
8220 70 79 52 2c 00 00 00 1c 05 00 00 73 1e 00 00 00 00 01 13 02 16 01 14 02 26 01 06 01 0d 01 15 01 pyR,.......s............&.......
8240 12 01 0e 02 16 01 05 01 13 01 0a 01 16 01 28 08 00 00 00 52 2d 00 00 00 52 2e 00 00 00 52 22 00 ..............(....R-...R....R".
8260 00 00 52 39 00 00 00 52 44 00 00 00 52 54 00 00 00 52 24 00 00 00 52 2c 00 00 00 28 00 00 00 00 ..R9...RD...RT...R$...R,...(....
8280 28 00 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 (....(....s\.../tmp/ndk-User/bui
82a0 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 ldhost/install/prebuilt/darwin-x
82c0 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 86_64/lib/python2.7/test/test_ge
82e0 6e 65 72 61 74 6f 72 73 2e 70 79 52 2f 00 00 00 71 04 00 00 73 0c 00 00 00 06 01 0c 8b 09 05 09 nerators.pyR/...q...s...........
8300 04 09 11 09 05 73 60 0f 00 00 0a 0a 47 65 6e 65 72 61 74 65 20 74 68 65 20 33 2d 62 69 74 20 62 .....s`.....Generate.the.3-bit.b
8320 69 6e 61 72 79 20 6e 75 6d 62 65 72 73 20 69 6e 20 6f 72 64 65 72 2e 20 20 54 68 69 73 20 69 6c inary.numbers.in.order...This.il
8340 6c 75 73 74 72 61 74 65 73 20 64 75 6d 62 65 73 74 2d 0a 70 6f 73 73 69 62 6c 65 20 75 73 65 20 lustrates.dumbest-.possible.use.
8360 6f 66 20 63 6f 6e 6a 6f 69 6e 2c 20 6a 75 73 74 20 74 6f 20 67 65 6e 65 72 61 74 65 20 74 68 65 of.conjoin,.just.to.generate.the
8380 20 66 75 6c 6c 20 63 72 6f 73 73 2d 70 72 6f 64 75 63 74 2e 0a 0a 3e 3e 3e 20 66 6f 72 20 63 20 .full.cross-product...>>>.for.c.
83a0 69 6e 20 63 6f 6e 6a 6f 69 6e 28 5b 6c 61 6d 62 64 61 3a 20 69 74 65 72 28 28 30 2c 20 31 29 29 in.conjoin([lambda:.iter((0,.1))
83c0 5d 20 2a 20 33 29 3a 0a 2e 2e 2e 20 20 20 20 20 70 72 69 6e 74 20 63 0a 5b 30 2c 20 30 2c 20 30 ].*.3):.........print.c.[0,.0,.0
83e0 5d 0a 5b 30 2c 20 30 2c 20 31 5d 0a 5b 30 2c 20 31 2c 20 30 5d 0a 5b 30 2c 20 31 2c 20 31 5d 0a ].[0,.0,.1].[0,.1,.0].[0,.1,.1].
8400 5b 31 2c 20 30 2c 20 30 5d 0a 5b 31 2c 20 30 2c 20 31 5d 0a 5b 31 2c 20 31 2c 20 30 5d 0a 5b 31 [1,.0,.0].[1,.0,.1].[1,.1,.0].[1
8420 2c 20 31 2c 20 31 5d 0a 0a 46 6f 72 20 65 66 66 69 63 69 65 6e 63 79 20 69 6e 20 74 79 70 69 63 ,.1,.1]..For.efficiency.in.typic
8440 61 6c 20 62 61 63 6b 74 72 61 63 6b 69 6e 67 20 61 70 70 73 2c 20 63 6f 6e 6a 6f 69 6e 28 29 20 al.backtracking.apps,.conjoin().
8460 79 69 65 6c 64 73 20 74 68 65 20 73 61 6d 65 20 6c 69 73 74 0a 6f 62 6a 65 63 74 20 65 61 63 68 yields.the.same.list.object.each
8480 20 74 69 6d 65 2e 20 20 53 6f 20 69 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 73 61 76 65 20 61 .time...So.if.you.want.to.save.a
84a0 77 61 79 20 61 20 66 75 6c 6c 20 61 63 63 6f 75 6e 74 20 6f 66 20 69 74 73 0a 67 65 6e 65 72 61 way.a.full.account.of.its.genera
84c0 74 65 64 20 73 65 71 75 65 6e 63 65 2c 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 63 6f 70 79 20 69 ted.sequence,.you.need.to.copy.i
84e0 74 73 20 72 65 73 75 6c 74 73 2e 0a 0a 3e 3e 3e 20 64 65 66 20 67 65 6e 63 6f 70 79 28 69 74 65 ts.results...>>>.def.gencopy(ite
8500 72 61 74 6f 72 29 3a 0a 2e 2e 2e 20 20 20 20 20 66 6f 72 20 78 20 69 6e 20 69 74 65 72 61 74 6f rator):.........for.x.in.iterato
8520 72 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 78 5b 3a 5d 0a 0a 3e 3e 3e 20 66 r:.............yield.x[:]..>>>.f
8540 6f 72 20 6e 20 69 6e 20 72 61 6e 67 65 28 31 30 29 3a 0a 2e 2e 2e 20 20 20 20 20 61 6c 6c 20 3d or.n.in.range(10):.........all.=
8560 20 6c 69 73 74 28 67 65 6e 63 6f 70 79 28 63 6f 6e 6a 6f 69 6e 28 5b 6c 61 6d 62 64 61 3a 20 69 .list(gencopy(conjoin([lambda:.i
8580 74 65 72 28 28 30 2c 20 31 29 29 5d 20 2a 20 6e 29 29 29 0a 2e 2e 2e 20 20 20 20 20 70 72 69 6e ter((0,.1))].*.n))).........prin
85a0 74 20 6e 2c 20 6c 65 6e 28 61 6c 6c 29 2c 20 61 6c 6c 5b 30 5d 20 3d 3d 20 5b 30 5d 20 2a 20 6e t.n,.len(all),.all[0].==.[0].*.n
85c0 2c 20 61 6c 6c 5b 2d 31 5d 20 3d 3d 20 5b 31 5d 20 2a 20 6e 0a 30 20 31 20 54 72 75 65 20 54 72 ,.all[-1].==.[1].*.n.0.1.True.Tr
85e0 75 65 0a 31 20 32 20 54 72 75 65 20 54 72 75 65 0a 32 20 34 20 54 72 75 65 20 54 72 75 65 0a 33 ue.1.2.True.True.2.4.True.True.3
8600 20 38 20 54 72 75 65 20 54 72 75 65 0a 34 20 31 36 20 54 72 75 65 20 54 72 75 65 0a 35 20 33 32 .8.True.True.4.16.True.True.5.32
8620 20 54 72 75 65 20 54 72 75 65 0a 36 20 36 34 20 54 72 75 65 20 54 72 75 65 0a 37 20 31 32 38 20 .True.True.6.64.True.True.7.128.
8640 54 72 75 65 20 54 72 75 65 0a 38 20 32 35 36 20 54 72 75 65 20 54 72 75 65 0a 39 20 35 31 32 20 True.True.8.256.True.True.9.512.
8660 54 72 75 65 20 54 72 75 65 0a 0a 41 6e 64 20 72 75 6e 20 61 6e 20 38 2d 71 75 65 65 6e 73 20 73 True.True..And.run.an.8-queens.s
8680 6f 6c 76 65 72 2e 0a 0a 3e 3e 3e 20 71 20 3d 20 51 75 65 65 6e 73 28 38 29 0a 3e 3e 3e 20 4c 49 olver...>>>.q.=.Queens(8).>>>.LI
86a0 4d 49 54 20 3d 20 32 0a 3e 3e 3e 20 63 6f 75 6e 74 20 3d 20 30 0a 3e 3e 3e 20 66 6f 72 20 72 6f MIT.=.2.>>>.count.=.0.>>>.for.ro
86c0 77 32 63 6f 6c 20 69 6e 20 71 2e 73 6f 6c 76 65 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 63 6f 75 6e w2col.in.q.solve():.........coun
86e0 74 20 2b 3d 20 31 0a 2e 2e 2e 20 20 20 20 20 69 66 20 63 6f 75 6e 74 20 3c 3d 20 4c 49 4d 49 54 t.+=.1.........if.count.<=.LIMIT
8700 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 53 6f 6c 75 74 69 6f 6e 22 2c 20 :.............print."Solution",.
8720 63 6f 75 6e 74 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 71 2e 70 72 69 6e 74 73 6f 6c 75 74 69 6f count.............q.printsolutio
8740 6e 28 72 6f 77 32 63 6f 6c 29 0a 53 6f 6c 75 74 69 6f 6e 20 31 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d n(row2col).Solution.1.+-+-+-+-+-
8760 2b 2d 2b 2d 2b 2d 2b 0a 7c 51 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d +-+-+-+.|Q|.|.|.|.|.|.|.|.+-+-+-
8780 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 51 7c 20 7c 20 7c 20 7c 0a 2b 2d +-+-+-+-+-+.|.|.|.|.|Q|.|.|.|.+-
87a0 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 51 +-+-+-+-+-+-+-+.|.|.|.|.|.|.|.|Q
87c0 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 20 7c 51 |.+-+-+-+-+-+-+-+-+.|.|.|.|.|.|Q
87e0 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 51 7c 20 |.|.|.+-+-+-+-+-+-+-+-+.|.|.|Q|.
8800 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 |.|.|.|.|.+-+-+-+-+-+-+-+-+.|.|.
8820 7c 20 7c 20 7c 20 7c 20 7c 51 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a |.|.|.|.|Q|.|.+-+-+-+-+-+-+-+-+.
8840 7c 20 7c 51 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d |.|Q|.|.|.|.|.|.|.+-+-+-+-+-+-+-
8860 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 51 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d +-+.|.|.|.|Q|.|.|.|.|.+-+-+-+-+-
8880 2b 2d 2b 2d 2b 2d 2b 0a 53 6f 6c 75 74 69 6f 6e 20 32 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b +-+-+-+.Solution.2.+-+-+-+-+-+-+
88a0 2d 2b 2d 2b 0a 7c 51 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b -+-+.|Q|.|.|.|.|.|.|.|.+-+-+-+-+
88c0 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 20 7c 51 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b -+-+-+-+.|.|.|.|.|.|Q|.|.|.+-+-+
88e0 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 51 7c 0a 2b -+-+-+-+-+-+.|.|.|.|.|.|.|.|Q|.+
8900 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 51 7c 20 7c 20 7c 20 7c 20 7c -+-+-+-+-+-+-+-+.|.|.|Q|.|.|.|.|
8920 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c 20 7c 20 7c .|.+-+-+-+-+-+-+-+-+.|.|.|.|.|.|
8940 20 7c 51 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c 20 7c 20 7c .|Q|.|.+-+-+-+-+-+-+-+-+.|.|.|.|
8960 51 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 0a 7c 20 7c Q|.|.|.|.|.+-+-+-+-+-+-+-+-+.|.|
8980 51 7c 20 7c 20 7c 20 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b Q|.|.|.|.|.|.|.+-+-+-+-+-+-+-+-+
89a0 0a 7c 20 7c 20 7c 20 7c 20 7c 51 7c 20 7c 20 7c 20 7c 0a 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b 2d 2b .|.|.|.|.|Q|.|.|.|.+-+-+-+-+-+-+
89c0 2d 2b 2d 2b 0a 0a 3e 3e 3e 20 70 72 69 6e 74 20 63 6f 75 6e 74 2c 20 22 73 6f 6c 75 74 69 6f 6e -+-+..>>>.print.count,."solution
89e0 73 20 69 6e 20 61 6c 6c 2e 22 0a 39 32 20 73 6f 6c 75 74 69 6f 6e 73 20 69 6e 20 61 6c 6c 2e 0a s.in.all.".92.solutions.in.all..
8a00 0a 41 6e 64 20 72 75 6e 20 61 20 4b 6e 69 67 68 74 27 73 20 54 6f 75 72 20 6f 6e 20 61 20 31 30 .And.run.a.Knight's.Tour.on.a.10
8a20 78 31 30 20 62 6f 61 72 64 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 72 65 20 61 72 65 20 x10.board...Note.that.there.are.
8a40 61 62 6f 75 74 0a 32 30 2c 30 30 30 20 73 6f 6c 75 74 69 6f 6e 73 20 65 76 65 6e 20 6f 6e 20 61 about.20,000.solutions.even.on.a
8a60 20 36 78 36 20 62 6f 61 72 64 2c 20 73 6f 20 64 6f 6e 27 74 20 64 61 72 65 20 72 75 6e 20 74 68 .6x6.board,.so.don't.dare.run.th
8a80 69 73 20 74 6f 20 65 78 68 61 75 73 74 69 6f 6e 2e 0a 0a 3e 3e 3e 20 6b 20 3d 20 4b 6e 69 67 68 is.to.exhaustion...>>>.k.=.Knigh
8aa0 74 73 28 31 30 2c 20 31 30 29 0a 3e 3e 3e 20 4c 49 4d 49 54 20 3d 20 32 0a 3e 3e 3e 20 63 6f 75 ts(10,.10).>>>.LIMIT.=.2.>>>.cou
8ac0 6e 74 20 3d 20 30 0a 3e 3e 3e 20 66 6f 72 20 78 20 69 6e 20 6b 2e 73 6f 6c 76 65 28 29 3a 0a 2e nt.=.0.>>>.for.x.in.k.solve():..
8ae0 2e 2e 20 20 20 20 20 63 6f 75 6e 74 20 2b 3d 20 31 0a 2e 2e 2e 20 20 20 20 20 69 66 20 63 6f 75 .......count.+=.1.........if.cou
8b00 6e 74 20 3c 3d 20 4c 49 4d 49 54 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 20 22 nt.<=.LIMIT:.............print."
8b20 53 6f 6c 75 74 69 6f 6e 22 2c 20 63 6f 75 6e 74 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 6b 2e 70 Solution",.count.............k.p
8b40 72 69 6e 74 73 6f 6c 75 74 69 6f 6e 28 78 29 0a 2e 2e 2e 20 20 20 20 20 65 6c 73 65 3a 0a 2e 2e rintsolution(x).........else:...
8b60 2e 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 0a 53 6f 6c 75 74 69 6f 6e 20 31 0a 2b 2d 2d 2d 2b ..........break.Solution.1.+---+
8b80 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b ---+---+---+---+---+---+---+---+
8ba0 2d 2d 2d 2b 0a 7c 20 20 31 7c 20 35 38 7c 20 32 37 7c 20 33 34 7c 20 20 33 7c 20 34 30 7c 20 32 ---+.|..1|.58|.27|.34|..3|.40|.2
8bc0 39 7c 20 31 30 7c 20 20 35 7c 20 20 38 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 9|.10|..5|..8|.+---+---+---+---+
8be0 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 32 36 7c 20 33 ---+---+---+---+---+---+.|.26|.3
8c00 35 7c 20 20 32 7c 20 35 37 7c 20 32 38 7c 20 33 33 7c 20 20 34 7c 20 20 37 7c 20 33 30 7c 20 31 5|..2|.57|.28|.33|..4|..7|.30|.1
8c20 31 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 1|.+---+---+---+---+---+---+---+
8c40 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 35 39 7c 31 30 30 7c 20 37 33 7c 20 33 36 7c 20 34 ---+---+---+.|.59|100|.73|.36|.4
8c60 31 7c 20 35 36 7c 20 33 39 7c 20 33 32 7c 20 20 39 7c 20 20 36 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 1|.56|.39|.32|..9|..6|.+---+---+
8c80 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b ---+---+---+---+---+---+---+---+
8ca0 0a 7c 20 37 34 7c 20 32 35 7c 20 36 30 7c 20 35 35 7c 20 37 32 7c 20 33 37 7c 20 34 32 7c 20 34 .|.74|.25|.60|.55|.72|.37|.42|.4
8cc0 39 7c 20 31 32 7c 20 33 31 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 9|.12|.31|.+---+---+---+---+---+
8ce0 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 36 31 7c 20 38 36 7c 20 39 ---+---+---+---+---+.|.61|.86|.9
8d00 39 7c 20 37 36 7c 20 36 33 7c 20 35 32 7c 20 34 37 7c 20 33 38 7c 20 34 33 7c 20 35 30 7c 0a 2b 9|.76|.63|.52|.47|.38|.43|.50|.+
8d20 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b ---+---+---+---+---+---+---+---+
8d40 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 32 34 7c 20 37 35 7c 20 36 32 7c 20 38 35 7c 20 35 34 7c 20 37 ---+---+.|.24|.75|.62|.85|.54|.7
8d60 31 7c 20 36 34 7c 20 35 31 7c 20 34 38 7c 20 31 33 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 1|.64|.51|.48|.13|.+---+---+---+
8d80 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 38 ---+---+---+---+---+---+---+.|.8
8da0 37 7c 20 39 38 7c 20 39 31 7c 20 38 30 7c 20 37 37 7c 20 38 34 7c 20 35 33 7c 20 34 36 7c 20 36 7|.98|.91|.80|.77|.84|.53|.46|.6
8dc0 35 7c 20 34 34 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 5|.44|.+---+---+---+---+---+---+
8de0 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 39 30 7c 20 32 33 7c 20 38 38 7c 20 39 ---+---+---+---+.|.90|.23|.88|.9
8e00 35 7c 20 37 30 7c 20 37 39 7c 20 36 38 7c 20 38 33 7c 20 31 34 7c 20 31 37 7c 0a 2b 2d 2d 2d 2b 5|.70|.79|.68|.83|.14|.17|.+---+
8e20 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b ---+---+---+---+---+---+---+---+
8e40 2d 2d 2d 2b 0a 7c 20 39 37 7c 20 39 32 7c 20 32 31 7c 20 37 38 7c 20 38 31 7c 20 39 34 7c 20 31 ---+.|.97|.92|.21|.78|.81|.94|.1
8e60 39 7c 20 31 36 7c 20 34 35 7c 20 36 36 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 9|.16|.45|.66|.+---+---+---+---+
8e80 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 32 32 7c 20 38 ---+---+---+---+---+---+.|.22|.8
8ea0 39 7c 20 39 36 7c 20 39 33 7c 20 32 30 7c 20 36 39 7c 20 38 32 7c 20 36 37 7c 20 31 38 7c 20 31 9|.96|.93|.20|.69|.82|.67|.18|.1
8ec0 35 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 5|.+---+---+---+---+---+---+---+
8ee0 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 53 6f 6c 75 74 69 6f 6e 20 32 0a 2b 2d 2d 2d 2b 2d 2d 2d ---+---+---+.Solution.2.+---+---
8f00 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d +---+---+---+---+---+---+---+---
8f20 2b 0a 7c 20 20 31 7c 20 35 38 7c 20 32 37 7c 20 33 34 7c 20 20 33 7c 20 34 30 7c 20 32 39 7c 20 +.|..1|.58|.27|.34|..3|.40|.29|.
8f40 31 30 7c 20 20 35 7c 20 20 38 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 10|..5|..8|.+---+---+---+---+---
8f60 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 32 36 7c 20 33 35 7c 20 +---+---+---+---+---+.|.26|.35|.
8f80 20 32 7c 20 35 37 7c 20 32 38 7c 20 33 33 7c 20 20 34 7c 20 20 37 7c 20 33 30 7c 20 31 31 7c 0a .2|.57|.28|.33|..4|..7|.30|.11|.
8fa0 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d +---+---+---+---+---+---+---+---
8fc0 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 35 39 7c 31 30 30 7c 20 37 33 7c 20 33 36 7c 20 34 31 7c 20 +---+---+.|.59|100|.73|.36|.41|.
8fe0 35 36 7c 20 33 39 7c 20 33 32 7c 20 20 39 7c 20 20 36 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 56|.39|.32|..9|..6|.+---+---+---
9000 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 +---+---+---+---+---+---+---+.|.
9020 37 34 7c 20 32 35 7c 20 36 30 7c 20 35 35 7c 20 37 32 7c 20 33 37 7c 20 34 32 7c 20 34 39 7c 20 74|.25|.60|.55|.72|.37|.42|.49|.
9040 31 32 7c 20 33 31 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 12|.31|.+---+---+---+---+---+---
9060 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 36 31 7c 20 38 36 7c 20 39 39 7c 20 +---+---+---+---+.|.61|.86|.99|.
9080 37 36 7c 20 36 33 7c 20 35 32 7c 20 34 37 7c 20 33 38 7c 20 34 33 7c 20 35 30 7c 0a 2b 2d 2d 2d 76|.63|.52|.47|.38|.43|.50|.+---
90a0 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d +---+---+---+---+---+---+---+---
90c0 2b 2d 2d 2d 2b 0a 7c 20 32 34 7c 20 37 35 7c 20 36 32 7c 20 38 35 7c 20 35 34 7c 20 37 31 7c 20 +---+.|.24|.75|.62|.85|.54|.71|.
90e0 36 34 7c 20 35 31 7c 20 34 38 7c 20 31 33 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 64|.51|.48|.13|.+---+---+---+---
9100 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 38 37 7c 20 +---+---+---+---+---+---+.|.87|.
9120 39 38 7c 20 38 39 7c 20 38 30 7c 20 37 37 7c 20 38 34 7c 20 35 33 7c 20 34 36 7c 20 36 35 7c 20 98|.89|.80|.77|.84|.53|.46|.65|.
9140 34 34 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 44|.+---+---+---+---+---+---+---
9160 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 39 30 7c 20 32 33 7c 20 39 32 7c 20 39 35 7c 20 +---+---+---+.|.90|.23|.92|.95|.
9180 37 30 7c 20 37 39 7c 20 36 38 7c 20 38 33 7c 20 31 34 7c 20 31 37 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 70|.79|.68|.83|.14|.17|.+---+---
91a0 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d +---+---+---+---+---+---+---+---
91c0 2b 0a 7c 20 39 37 7c 20 38 38 7c 20 32 31 7c 20 37 38 7c 20 38 31 7c 20 39 34 7c 20 31 39 7c 20 +.|.97|.88|.21|.78|.81|.94|.19|.
91e0 31 36 7c 20 34 35 7c 20 36 36 7c 0a 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 16|.45|.66|.+---+---+---+---+---
9200 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 7c 20 32 32 7c 20 39 31 7c 20 +---+---+---+---+---+.|.22|.91|.
9220 39 36 7c 20 39 33 7c 20 32 30 7c 20 36 39 7c 20 38 32 7c 20 36 37 7c 20 31 38 7c 20 31 35 7c 0a 96|.93|.20|.69|.82|.67|.18|.15|.
9240 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d 2b 2d 2d 2d +---+---+---+---+---+---+---+---
9260 2b 2d 2d 2d 2b 2d 2d 2d 2b 0a 73 4d 01 00 00 47 65 6e 65 72 61 74 6f 72 73 20 61 72 65 20 77 65 +---+---+.sM...Generators.are.we
9280 61 6b 6c 79 20 72 65 66 65 72 65 6e 63 61 62 6c 65 3a 0a 0a 3e 3e 3e 20 69 6d 70 6f 72 74 20 77 akly.referencable:..>>>.import.w
92a0 65 61 6b 72 65 66 0a 3e 3e 3e 20 64 65 66 20 67 65 6e 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 79 69 eakref.>>>.def.gen():.........yi
92c0 65 6c 64 20 27 66 6f 6f 21 27 0a 2e 2e 2e 0a 3e 3e 3e 20 77 72 20 3d 20 77 65 61 6b 72 65 66 2e eld.'foo!'.....>>>.wr.=.weakref.
92e0 72 65 66 28 67 65 6e 29 0a 3e 3e 3e 20 77 72 28 29 20 69 73 20 67 65 6e 0a 54 72 75 65 0a 3e 3e ref(gen).>>>.wr().is.gen.True.>>
9300 3e 20 70 20 3d 20 77 65 61 6b 72 65 66 2e 70 72 6f 78 79 28 67 65 6e 29 0a 0a 47 65 6e 65 72 61 >.p.=.weakref.proxy(gen)..Genera
9320 74 6f 72 2d 69 74 65 72 61 74 6f 72 73 20 61 72 65 20 77 65 61 6b 6c 79 20 72 65 66 65 72 65 6e tor-iterators.are.weakly.referen
9340 63 61 62 6c 65 20 61 73 20 77 65 6c 6c 3a 0a 0a 3e 3e 3e 20 67 69 20 3d 20 67 65 6e 28 29 0a 3e cable.as.well:..>>>.gi.=.gen().>
9360 3e 3e 20 77 72 20 3d 20 77 65 61 6b 72 65 66 2e 72 65 66 28 67 69 29 0a 3e 3e 3e 20 77 72 28 29 >>.wr.=.weakref.ref(gi).>>>.wr()
9380 20 69 73 20 67 69 0a 54 72 75 65 0a 3e 3e 3e 20 70 20 3d 20 77 65 61 6b 72 65 66 2e 70 72 6f 78 .is.gi.True.>>>.p.=.weakref.prox
93a0 79 28 67 69 29 0a 3e 3e 3e 20 6c 69 73 74 28 70 29 0a 5b 27 66 6f 6f 21 27 5d 0a 0a 73 56 18 00 y(gi).>>>.list(p).['foo!']..sV..
93c0 00 53 65 6e 64 69 6e 67 20 61 20 76 61 6c 75 65 20 69 6e 74 6f 20 61 20 73 74 61 72 74 65 64 20 .Sending.a.value.into.a.started.
93e0 67 65 6e 65 72 61 74 6f 72 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 generator:..>>>.def.f():........
9400 20 70 72 69 6e 74 20 28 79 69 65 6c 64 20 31 29 0a 2e 2e 2e 20 20 20 20 20 79 69 65 6c 64 20 32 .print.(yield.1).........yield.2
9420 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 31 0a 3e 3e 3e 20 .>>>.g.=.f().>>>.g.next().1.>>>.
9440 67 2e 73 65 6e 64 28 34 32 29 0a 34 32 0a 32 0a 0a 53 65 6e 64 69 6e 67 20 61 20 76 61 6c 75 65 g.send(42).42.2..Sending.a.value
9460 20 69 6e 74 6f 20 61 20 6e 65 77 20 67 65 6e 65 72 61 74 6f 72 20 70 72 6f 64 75 63 65 73 20 61 .into.a.new.generator.produces.a
9480 20 54 79 70 65 45 72 72 6f 72 3a 0a 0a 3e 3e 3e 20 66 28 29 2e 73 65 6e 64 28 22 66 6f 6f 22 29 .TypeError:..>>>.f().send("foo")
94a0 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 .Traceback.(most.recent.call.las
94c0 74 29 3a 0a 2e 2e 2e 0a 54 79 70 65 45 72 72 6f 72 3a 20 63 61 6e 27 74 20 73 65 6e 64 20 6e 6f t):.....TypeError:.can't.send.no
94e0 6e 2d 4e 6f 6e 65 20 76 61 6c 75 65 20 74 6f 20 61 20 6a 75 73 74 2d 73 74 61 72 74 65 64 20 67 n-None.value.to.a.just-started.g
9500 65 6e 65 72 61 74 6f 72 0a 0a 0a 59 69 65 6c 64 20 62 79 20 69 74 73 65 6c 66 20 79 69 65 6c 64 enerator...Yield.by.itself.yield
9520 73 20 4e 6f 6e 65 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 79 69 65 6c 64 0a 3e 3e 3e 20 s.None:..>>>.def.f():.yield.>>>.
9540 6c 69 73 74 28 66 28 29 29 0a 5b 4e 6f 6e 65 5d 0a 0a 0a 0a 41 6e 20 6f 62 73 63 65 6e 65 20 61 list(f()).[None]....An.obscene.a
9560 62 75 73 65 20 6f 66 20 61 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 74 68 69 buse.of.a.yield.expression.withi
9580 6e 20 61 20 67 65 6e 65 72 61 74 6f 72 20 65 78 70 72 65 73 73 69 6f 6e 3a 0a 0a 3e 3e 3e 20 6c n.a.generator.expression:..>>>.l
95a0 69 73 74 28 28 79 69 65 6c 64 20 32 31 29 20 66 6f 72 20 69 20 69 6e 20 72 61 6e 67 65 28 34 29 ist((yield.21).for.i.in.range(4)
95c0 29 0a 5b 32 31 2c 20 4e 6f 6e 65 2c 20 32 31 2c 20 4e 6f 6e 65 2c 20 32 31 2c 20 4e 6f 6e 65 2c ).[21,.None,.21,.None,.21,.None,
95e0 20 32 31 2c 20 4e 6f 6e 65 5d 0a 0a 41 6e 64 20 61 20 6d 6f 72 65 20 73 61 6e 65 2c 20 62 75 74 .21,.None]..And.a.more.sane,.but
9600 20 73 74 69 6c 6c 20 77 65 69 72 64 20 75 73 61 67 65 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 .still.weird.usage:..>>>.def.f()
9620 3a 20 6c 69 73 74 28 69 20 66 6f 72 20 69 20 69 6e 20 5b 28 79 69 65 6c 64 20 32 36 29 5d 29 0a :.list(i.for.i.in.[(yield.26)]).
9640 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e >>>.type(f()).<type.'generator'>
9660 0a 0a 0a 41 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 20 77 69 74 68 20 61 75 67 6d 65 ...A.yield.expression.with.augme
9680 6e 74 65 64 20 61 73 73 69 67 6e 6d 65 6e 74 2e 0a 0a 3e 3e 3e 20 64 65 66 20 63 6f 72 6f 75 74 nted.assignment...>>>.def.corout
96a0 69 6e 65 28 73 65 71 29 3a 0a 2e 2e 2e 20 20 20 20 20 63 6f 75 6e 74 20 3d 20 30 0a 2e 2e 2e 20 ine(seq):.........count.=.0.....
96c0 20 20 20 20 77 68 69 6c 65 20 63 6f 75 6e 74 20 3c 20 32 30 30 3a 0a 2e 2e 2e 20 20 20 20 20 20 ....while.count.<.200:..........
96e0 20 20 20 63 6f 75 6e 74 20 2b 3d 20 79 69 65 6c 64 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 73 65 ...count.+=.yield.............se
9700 71 2e 61 70 70 65 6e 64 28 63 6f 75 6e 74 29 0a 3e 3e 3e 20 73 65 71 20 3d 20 5b 5d 0a 3e 3e 3e q.append(count).>>>.seq.=.[].>>>
9720 20 63 20 3d 20 63 6f 72 6f 75 74 69 6e 65 28 73 65 71 29 0a 3e 3e 3e 20 63 2e 6e 65 78 74 28 29 .c.=.coroutine(seq).>>>.c.next()
9740 0a 3e 3e 3e 20 70 72 69 6e 74 20 73 65 71 0a 5b 5d 0a 3e 3e 3e 20 63 2e 73 65 6e 64 28 31 30 29 .>>>.print.seq.[].>>>.c.send(10)
9760 0a 3e 3e 3e 20 70 72 69 6e 74 20 73 65 71 0a 5b 31 30 5d 0a 3e 3e 3e 20 63 2e 73 65 6e 64 28 31 .>>>.print.seq.[10].>>>.c.send(1
9780 30 29 0a 3e 3e 3e 20 70 72 69 6e 74 20 73 65 71 0a 5b 31 30 2c 20 32 30 5d 0a 3e 3e 3e 20 63 2e 0).>>>.print.seq.[10,.20].>>>.c.
97a0 73 65 6e 64 28 31 30 29 0a 3e 3e 3e 20 70 72 69 6e 74 20 73 65 71 0a 5b 31 30 2c 20 32 30 2c 20 send(10).>>>.print.seq.[10,.20,.
97c0 33 30 5d 0a 0a 0a 43 68 65 63 6b 20 73 6f 6d 65 20 73 79 6e 74 61 78 20 65 72 72 6f 72 73 20 66 30]...Check.some.syntax.errors.f
97e0 6f 72 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 73 3a 0a 0a 3e 3e 3e 20 66 3d 6c 61 6d or.yield.expressions:..>>>.f=lam
9800 62 64 61 3a 20 28 79 69 65 6c 64 20 31 29 2c 28 79 69 65 6c 64 20 32 29 0a 54 72 61 63 65 62 61 bda:.(yield.1),(yield.2).Traceba
9820 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e ck.(most.recent.call.last):.....
9840 2e 0a 20 20 46 69 6c 65 20 22 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e ....File."<doctest.test.test_gen
9860 65 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 63 6f 72 6f 75 74 69 6e 65 5b 32 31 5d 3e 22 erators.__test__.coroutine[21]>"
9880 2c 20 6c 69 6e 65 20 31 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 27 79 69 65 6c 64 27 20 6f 75 ,.line.1.SyntaxError:.'yield'.ou
98a0 74 73 69 64 65 20 66 75 6e 63 74 69 6f 6e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 72 65 74 tside.function..>>>.def.f():.ret
98c0 75 72 6e 20 6c 61 6d 62 64 61 20 78 3d 28 79 69 65 6c 64 29 3a 20 31 0a 54 72 61 63 65 62 61 63 urn.lambda.x=(yield):.1.Tracebac
98e0 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e k.(most.recent.call.last):......
9900 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 27 72 65 74 75 72 6e 27 20 77 69 74 68 20 61 72 67 75 .SyntaxError:.'return'.with.argu
9920 6d 65 6e 74 20 69 6e 73 69 64 65 20 67 65 6e 65 72 61 74 6f 72 20 28 3c 64 6f 63 74 65 73 74 20 ment.inside.generator.(<doctest.
9940 74 65 73 74 2e 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 63 6f test.test_generators.__test__.co
9960 72 6f 75 74 69 6e 65 5b 32 32 5d 3e 2c 20 6c 69 6e 65 20 31 29 0a 0a 3e 3e 3e 20 64 65 66 20 66 routine[22]>,.line.1)..>>>.def.f
9980 28 29 3a 20 78 20 3d 20 79 69 65 6c 64 20 3d 20 79 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 ():.x.=.yield.=.y.Traceback.(mos
99a0 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 20 20 46 69 6c t.recent.call.last):.........Fil
99c0 65 20 22 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 e."<doctest.test.test_generators
99e0 2e 5f 5f 74 65 73 74 5f 5f 2e 63 6f 72 6f 75 74 69 6e 65 5b 32 33 5d 3e 22 2c 20 6c 69 6e 65 20 .__test__.coroutine[23]>",.line.
9a00 31 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 61 73 73 69 67 6e 6d 65 6e 74 20 74 6f 20 79 69 65 1.SyntaxError:.assignment.to.yie
9a20 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 0a 0a 3e 3e 3e 20 ld.expression.not.possible..>>>.
9a40 64 65 66 20 66 28 29 3a 20 28 79 69 65 6c 64 20 62 61 72 29 20 3d 20 79 0a 54 72 61 63 65 62 61 def.f():.(yield.bar).=.y.Traceba
9a60 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e ck.(most.recent.call.last):.....
9a80 2e 0a 20 20 46 69 6c 65 20 22 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e ....File."<doctest.test.test_gen
9aa0 65 72 61 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 63 6f 72 6f 75 74 69 6e 65 5b 32 34 5d 3e 22 erators.__test__.coroutine[24]>"
9ac0 2c 20 6c 69 6e 65 20 31 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 63 61 6e 27 74 20 61 73 73 69 ,.line.1.SyntaxError:.can't.assi
9ae0 67 6e 20 74 6f 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 0a 0a 3e 3e 3e 20 64 65 66 20 gn.to.yield.expression..>>>.def.
9b00 66 28 29 3a 20 28 79 69 65 6c 64 20 62 61 72 29 20 2b 3d 20 79 0a 54 72 61 63 65 62 61 63 6b 20 f():.(yield.bar).+=.y.Traceback.
9b20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 20 (most.recent.call.last):........
9b40 20 46 69 6c 65 20 22 3c 64 6f 63 74 65 73 74 20 74 65 73 74 2e 74 65 73 74 5f 67 65 6e 65 72 61 .File."<doctest.test.test_genera
9b60 74 6f 72 73 2e 5f 5f 74 65 73 74 5f 5f 2e 63 6f 72 6f 75 74 69 6e 65 5b 32 35 5d 3e 22 2c 20 6c tors.__test__.coroutine[25]>",.l
9b80 69 6e 65 20 31 0a 53 79 6e 74 61 78 45 72 72 6f 72 3a 20 63 61 6e 27 74 20 61 73 73 69 67 6e 20 ine.1.SyntaxError:.can't.assign.
9ba0 74 6f 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 0a 0a 0a 4e 6f 77 20 63 68 65 63 6b 20 to.yield.expression...Now.check.
9bc0 73 6f 6d 65 20 74 68 72 6f 77 28 29 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 3e 3e 3e 20 64 65 some.throw().conditions:..>>>.de
9be0 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 77 68 69 6c 65 20 54 72 75 65 3a 0a 2e 2e 2e 20 20 f.f():.........while.True:......
9c00 20 20 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e .......try:.................prin
9c20 74 20 28 79 69 65 6c 64 29 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 65 78 63 65 70 74 20 56 61 6c t.(yield).............except.Val
9c40 75 65 45 72 72 6f 72 2c 76 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 69 6e 74 ueError,v:.................print
9c60 20 22 63 61 75 67 68 74 20 56 61 6c 75 65 45 72 72 6f 72 20 28 25 73 29 22 20 25 20 28 76 29 2c ."caught.ValueError.(%s)".%.(v),
9c80 0a 3e 3e 3e 20 69 6d 70 6f 72 74 20 73 79 73 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 .>>>.import.sys.>>>.g.=.f().>>>.
9ca0 67 2e 6e 65 78 74 28 29 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 g.next()..>>>.g.throw(ValueError
9cc0 29 20 23 20 74 79 70 65 20 6f 6e 6c 79 0a 63 61 75 67 68 74 20 56 61 6c 75 65 45 72 72 6f 72 20 ).#.type.only.caught.ValueError.
9ce0 28 29 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 28 22 78 79 7a 22 ()..>>>.g.throw(ValueError("xyz"
9d00 29 29 20 20 23 20 76 61 6c 75 65 20 6f 6e 6c 79 0a 63 61 75 67 68 74 20 56 61 6c 75 65 45 72 72 ))..#.value.only.caught.ValueErr
9d20 6f 72 20 28 78 79 7a 29 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 or.(xyz)..>>>.g.throw(ValueError
9d40 2c 20 56 61 6c 75 65 45 72 72 6f 72 28 31 29 29 20 20 20 23 20 76 61 6c 75 65 2b 6d 61 74 63 68 ,.ValueError(1))...#.value+match
9d60 69 6e 67 20 74 79 70 65 0a 63 61 75 67 68 74 20 56 61 6c 75 65 45 72 72 6f 72 20 28 31 29 0a 0a ing.type.caught.ValueError.(1)..
9d80 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 2c 20 54 79 70 65 45 72 72 6f >>>.g.throw(ValueError,.TypeErro
9da0 72 28 31 29 29 20 20 23 20 6d 69 73 6d 61 74 63 68 65 64 20 74 79 70 65 2c 20 72 65 77 72 61 70 r(1))..#.mismatched.type,.rewrap
9dc0 70 65 64 0a 63 61 75 67 68 74 20 56 61 6c 75 65 45 72 72 6f 72 20 28 31 29 0a 0a 3e 3e 3e 20 67 ped.caught.ValueError.(1)..>>>.g
9de0 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 2c 20 56 61 6c 75 65 45 72 72 6f 72 28 31 29 .throw(ValueError,.ValueError(1)
9e00 2c 20 4e 6f 6e 65 29 20 20 20 23 20 65 78 70 6c 69 63 69 74 20 4e 6f 6e 65 20 74 72 61 63 65 62 ,.None)...#.explicit.None.traceb
9e20 61 63 6b 0a 63 61 75 67 68 74 20 56 61 6c 75 65 45 72 72 6f 72 20 28 31 29 0a 0a 3e 3e 3e 20 67 ack.caught.ValueError.(1)..>>>.g
9e40 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 28 31 29 2c 20 22 66 6f 6f 22 29 20 20 20 20 .throw(ValueError(1),."foo")....
9e60 20 20 20 23 20 62 61 64 20 61 72 67 73 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 ...#.bad.args.Traceback.(most.re
9e80 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 54 79 70 65 45 72 72 6f 72 cent.call.last):.......TypeError
9ea0 3a 20 69 6e 73 74 61 6e 63 65 20 65 78 63 65 70 74 69 6f 6e 20 6d 61 79 20 6e 6f 74 20 68 61 76 :.instance.exception.may.not.hav
9ec0 65 20 61 20 73 65 70 61 72 61 74 65 20 76 61 6c 75 65 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 e.a.separate.value..>>>.g.throw(
9ee0 56 61 6c 75 65 45 72 72 6f 72 2c 20 22 66 6f 6f 22 2c 20 32 33 29 20 20 20 20 20 20 23 20 62 61 ValueError,."foo",.23)......#.ba
9f00 64 20 61 72 67 73 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 d.args.Traceback.(most.recent.ca
9f20 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 54 79 70 65 45 72 72 6f 72 3a 20 74 68 72 6f 77 ll.last):.......TypeError:.throw
9f40 28 29 20 74 68 69 72 64 20 61 72 67 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 20 61 20 74 72 61 63 ().third.argument.must.be.a.trac
9f60 65 62 61 63 6b 20 6f 62 6a 65 63 74 0a 0a 3e 3e 3e 20 64 65 66 20 74 68 72 6f 77 28 67 2c 65 78 eback.object..>>>.def.throw(g,ex
9f80 63 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 61 69 c):.........try:.............rai
9fa0 73 65 20 65 78 63 0a 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 se.exc.........except:..........
9fc0 20 20 20 67 2e 74 68 72 6f 77 28 2a 73 79 73 2e 65 78 63 5f 69 6e 66 6f 28 29 29 0a 3e 3e 3e 20 ...g.throw(*sys.exc_info()).>>>.
9fe0 74 68 72 6f 77 28 67 2c 56 61 6c 75 65 45 72 72 6f 72 29 20 23 20 64 6f 20 69 74 20 77 69 74 68 throw(g,ValueError).#.do.it.with
a000 20 74 72 61 63 65 62 61 63 6b 20 69 6e 63 6c 75 64 65 64 0a 63 61 75 67 68 74 20 56 61 6c 75 65 .traceback.included.caught.Value
a020 45 72 72 6f 72 20 28 29 0a 0a 3e 3e 3e 20 67 2e 73 65 6e 64 28 31 29 0a 31 0a 0a 3e 3e 3e 20 74 Error.()..>>>.g.send(1).1..>>>.t
a040 68 72 6f 77 28 67 2c 54 79 70 65 45 72 72 6f 72 29 20 20 23 20 74 65 72 6d 69 6e 61 74 65 20 74 hrow(g,TypeError)..#.terminate.t
a060 68 65 20 67 65 6e 65 72 61 74 6f 72 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 he.generator.Traceback.(most.rec
a080 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 54 79 70 65 45 72 72 6f 72 0a ent.call.last):.......TypeError.
a0a0 0a 3e 3e 3e 20 70 72 69 6e 74 20 67 2e 67 69 5f 66 72 61 6d 65 0a 4e 6f 6e 65 0a 0a 3e 3e 3e 20 .>>>.print.g.gi_frame.None..>>>.
a0c0 67 2e 73 65 6e 64 28 32 29 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 g.send(2).Traceback.(most.recent
a0e0 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 53 74 6f 70 49 74 65 72 61 74 69 6f 6e .call.last):.......StopIteration
a100 0a 0a 3e 3e 3e 20 67 2e 74 68 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 2c 36 29 20 20 20 20 20 ..>>>.g.throw(ValueError,6).....
a120 20 20 23 20 74 68 72 6f 77 20 6f 6e 20 63 6c 6f 73 65 64 20 67 65 6e 65 72 61 74 6f 72 0a 54 72 ..#.throw.on.closed.generator.Tr
a140 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a aceback.(most.recent.call.last):
a160 0a 20 20 2e 2e 2e 0a 56 61 6c 75 65 45 72 72 6f 72 3a 20 36 0a 0a 3e 3e 3e 20 66 28 29 2e 74 68 .......ValueError:.6..>>>.f().th
a180 72 6f 77 28 56 61 6c 75 65 45 72 72 6f 72 2c 37 29 20 20 20 20 20 23 20 74 68 72 6f 77 20 6f 6e row(ValueError,7).....#.throw.on
a1a0 20 6a 75 73 74 2d 6f 70 65 6e 65 64 20 67 65 6e 65 72 61 74 6f 72 0a 54 72 61 63 65 62 61 63 6b .just-opened.generator.Traceback
a1c0 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a .(most.recent.call.last):.......
a1e0 56 61 6c 75 65 45 72 72 6f 72 3a 20 37 0a 0a 3e 3e 3e 20 66 28 29 2e 74 68 72 6f 77 28 22 61 62 ValueError:.7..>>>.f().throw("ab
a200 63 22 29 20 20 20 20 20 23 20 74 68 72 6f 77 20 6f 6e 20 6a 75 73 74 2d 6f 70 65 6e 65 64 20 67 c").....#.throw.on.just-opened.g
a220 65 6e 65 72 61 74 6f 72 0a 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 enerator.Traceback.(most.recent.
a240 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e 2e 0a 54 79 70 65 45 72 72 6f 72 3a 20 65 78 63 call.last):.......TypeError:.exc
a260 65 70 74 69 6f 6e 73 20 6d 75 73 74 20 62 65 20 63 6c 61 73 73 65 73 2c 20 6f 72 20 69 6e 73 74 eptions.must.be.classes,.or.inst
a280 61 6e 63 65 73 2c 20 6e 6f 74 20 73 74 72 0a 0a 4e 6f 77 20 6c 65 74 27 73 20 74 72 79 20 63 6c ances,.not.str..Now.let's.try.cl
a2a0 6f 73 69 6e 67 20 61 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a osing.a.generator:..>>>.def.f():
a2c0 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 20 79 69 65 6c 64 0a 2e 2e 2e 20 20 20 20 20 65 78 63 65 .........try:.yield.........exce
a2e0 70 74 20 47 65 6e 65 72 61 74 6f 72 45 78 69 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 72 pt.GeneratorExit:.............pr
a300 69 6e 74 20 22 65 78 69 74 69 6e 67 22 0a 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 int."exiting"..>>>.g.=.f().>>>.g
a320 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 67 2e 63 6c 6f 73 65 28 29 0a 65 78 69 74 69 6e 67 0a 3e 3e .next().>>>.g.close().exiting.>>
a340 3e 20 67 2e 63 6c 6f 73 65 28 29 20 20 23 20 73 68 6f 75 6c 64 20 62 65 20 6e 6f 2d 6f 70 20 6e >.g.close()..#.should.be.no-op.n
a360 6f 77 0a 0a 3e 3e 3e 20 66 28 29 2e 63 6c 6f 73 65 28 29 20 20 23 20 63 6c 6f 73 65 20 6f 6e 20 ow..>>>.f().close()..#.close.on.
a380 6a 75 73 74 2d 6f 70 65 6e 65 64 20 67 65 6e 65 72 61 74 6f 72 20 73 68 6f 75 6c 64 20 62 65 20 just-opened.generator.should.be.
a3a0 66 69 6e 65 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 79 69 65 6c 64 20 20 20 20 20 20 23 20 fine..>>>.def.f():.yield......#.
a3c0 61 6e 20 65 76 65 6e 20 73 69 6d 70 6c 65 72 20 67 65 6e 65 72 61 74 6f 72 0a 3e 3e 3e 20 66 28 an.even.simpler.generator.>>>.f(
a3e0 29 2e 63 6c 6f 73 65 28 29 20 20 20 20 20 20 20 20 20 23 20 63 6c 6f 73 65 20 62 65 66 6f 72 65 ).close().........#.close.before
a400 20 6f 70 65 6e 69 6e 67 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 .opening.>>>.g.=.f().>>>.g.next(
a420 29 0a 3e 3e 3e 20 67 2e 63 6c 6f 73 65 28 29 20 20 20 20 20 20 20 20 20 20 20 23 20 63 6c 6f 73 ).>>>.g.close()...........#.clos
a440 65 20 6e 6f 72 6d 61 6c 6c 79 0a 0a 41 6e 64 20 66 69 6e 61 6c 69 7a 61 74 69 6f 6e 3a 0a 0a 3e e.normally..And.finalization:..>
a460 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 20 79 69 65 6c 64 0a 2e >>.def.f():.........try:.yield..
a480 2e 2e 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 70 72 69 6e .......finally:.............prin
a4a0 74 20 22 65 78 69 74 69 6e 67 22 0a 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e t."exiting"..>>>.g.=.f().>>>.g.n
a4c0 65 78 74 28 29 0a 3e 3e 3e 20 64 65 6c 20 67 0a 65 78 69 74 69 6e 67 0a 0a 3e 3e 3e 20 63 6c 61 ext().>>>.del.g.exiting..>>>.cla
a4e0 73 73 20 63 6f 6e 74 65 78 74 28 6f 62 6a 65 63 74 29 3a 0a 2e 2e 2e 20 20 20 20 64 65 66 20 5f ss.context(object):........def._
a500 5f 65 6e 74 65 72 5f 5f 28 73 65 6c 66 29 3a 20 70 61 73 73 0a 2e 2e 2e 20 20 20 20 64 65 66 20 _enter__(self):.pass........def.
a520 5f 5f 65 78 69 74 5f 5f 28 73 65 6c 66 2c 20 2a 61 72 67 73 29 3a 20 70 72 69 6e 74 20 27 65 78 __exit__(self,.*args):.print.'ex
a540 69 74 69 6e 67 27 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 77 69 74 68 iting'.>>>.def.f():.........with
a560 20 63 6f 6e 74 65 78 74 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 0a 3e .context():..............yield.>
a580 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 64 65 6c 20 >>.g.=.f().>>>.g.next().>>>.del.
a5a0 67 0a 65 78 69 74 69 6e 67 0a 0a 0a 47 65 6e 65 72 61 74 6f 72 45 78 69 74 20 69 73 20 6e 6f 74 g.exiting...GeneratorExit.is.not
a5c0 20 63 61 75 67 68 74 20 62 79 20 65 78 63 65 70 74 20 45 78 63 65 70 74 69 6f 6e 3a 0a 0a 3e 3e .caught.by.except.Exception:..>>
a5e0 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 20 79 69 65 6c 64 0a 2e 2e >.def.f():.........try:.yield...
a600 2e 20 20 20 20 20 65 78 63 65 70 74 20 45 78 63 65 70 74 69 6f 6e 3a 20 70 72 69 6e 74 20 27 65 ......except.Exception:.print.'e
a620 78 63 65 70 74 27 0a 2e 2e 2e 20 20 20 20 20 66 69 6e 61 6c 6c 79 3a 20 70 72 69 6e 74 20 27 66 xcept'.........finally:.print.'f
a640 69 6e 61 6c 6c 79 27 0a 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 inally'..>>>.g.=.f().>>>.g.next(
a660 29 0a 3e 3e 3e 20 64 65 6c 20 67 0a 66 69 6e 61 6c 6c 79 0a 0a 0a 4e 6f 77 20 6c 65 74 27 73 20 ).>>>.del.g.finally...Now.let's.
a680 74 72 79 20 73 6f 6d 65 20 69 6c 6c 2d 62 65 68 61 76 65 64 20 67 65 6e 65 72 61 74 6f 72 73 3a try.some.ill-behaved.generators:
a6a0 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 74 72 79 3a 20 79 69 65 6c ..>>>.def.f():.........try:.yiel
a6c0 64 0a 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 20 47 65 6e 65 72 61 74 6f 72 45 78 69 74 3a 0a d.........except.GeneratorExit:.
a6e0 2e 2e 2e 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 22 66 6f 6f 21 22 0a 3e 3e 3e 20 67 20 3d ............yield."foo!".>>>.g.=
a700 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 67 2e 63 6c 6f 73 65 28 29 0a .f().>>>.g.next().>>>.g.close().
a720 54 72 61 63 65 62 61 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 Traceback.(most.recent.call.last
a740 29 3a 0a 20 20 2e 2e 2e 0a 52 75 6e 74 69 6d 65 45 72 72 6f 72 3a 20 67 65 6e 65 72 61 74 6f 72 ):.......RuntimeError:.generator
a760 20 69 67 6e 6f 72 65 64 20 47 65 6e 65 72 61 74 6f 72 45 78 69 74 0a 3e 3e 3e 20 67 2e 63 6c 6f .ignored.GeneratorExit.>>>.g.clo
a780 73 65 28 29 0a 0a 0a 4f 75 72 20 69 6c 6c 2d 62 65 68 61 76 65 64 20 63 6f 64 65 20 73 68 6f 75 se()...Our.ill-behaved.code.shou
a7a0 6c 64 20 62 65 20 69 6e 76 6f 6b 65 64 20 64 75 72 69 6e 67 20 47 43 3a 0a 0a 3e 3e 3e 20 69 6d ld.be.invoked.during.GC:..>>>.im
a7c0 70 6f 72 74 20 73 79 73 2c 20 53 74 72 69 6e 67 49 4f 0a 3e 3e 3e 20 6f 6c 64 2c 20 73 79 73 2e port.sys,.StringIO.>>>.old,.sys.
a7e0 73 74 64 65 72 72 20 3d 20 73 79 73 2e 73 74 64 65 72 72 2c 20 53 74 72 69 6e 67 49 4f 2e 53 74 stderr.=.sys.stderr,.StringIO.St
a800 72 69 6e 67 49 4f 28 29 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e 3e 20 67 2e 6e 65 78 74 28 ringIO().>>>.g.=.f().>>>.g.next(
a820 29 0a 3e 3e 3e 20 64 65 6c 20 67 0a 3e 3e 3e 20 73 79 73 2e 73 74 64 65 72 72 2e 67 65 74 76 61 ).>>>.del.g.>>>.sys.stderr.getva
a840 6c 75 65 28 29 2e 73 74 61 72 74 73 77 69 74 68 28 0a 2e 2e 2e 20 20 20 20 20 22 45 78 63 65 70 lue().startswith(........."Excep
a860 74 69 6f 6e 20 52 75 6e 74 69 6d 65 45 72 72 6f 72 3a 20 27 67 65 6e 65 72 61 74 6f 72 20 69 67 tion.RuntimeError:.'generator.ig
a880 6e 6f 72 65 64 20 47 65 6e 65 72 61 74 6f 72 45 78 69 74 27 20 69 6e 20 22 0a 2e 2e 2e 20 29 0a nored.GeneratorExit'.in.".....).
a8a0 54 72 75 65 0a 3e 3e 3e 20 73 79 73 2e 73 74 64 65 72 72 20 3d 20 6f 6c 64 0a 0a 0a 41 6e 64 20 True.>>>.sys.stderr.=.old...And.
a8c0 65 72 72 6f 72 73 20 74 68 72 6f 77 6e 20 64 75 72 69 6e 67 20 63 6c 6f 73 69 6e 67 20 73 68 6f errors.thrown.during.closing.sho
a8e0 75 6c 64 20 70 72 6f 70 61 67 61 74 65 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 0a 2e 2e 2e uld.propagate:..>>>.def.f():....
a900 20 20 20 20 20 74 72 79 3a 20 79 69 65 6c 64 0a 2e 2e 2e 20 20 20 20 20 65 78 63 65 70 74 20 47 .....try:.yield.........except.G
a920 65 6e 65 72 61 74 6f 72 45 78 69 74 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 eneratorExit:.............raise.
a940 54 79 70 65 45 72 72 6f 72 28 22 66 69 65 21 22 29 0a 3e 3e 3e 20 67 20 3d 20 66 28 29 0a 3e 3e TypeError("fie!").>>>.g.=.f().>>
a960 3e 20 67 2e 6e 65 78 74 28 29 0a 3e 3e 3e 20 67 2e 63 6c 6f 73 65 28 29 0a 54 72 61 63 65 62 61 >.g.next().>>>.g.close().Traceba
a980 63 6b 20 28 6d 6f 73 74 20 72 65 63 65 6e 74 20 63 61 6c 6c 20 6c 61 73 74 29 3a 0a 20 20 2e 2e ck.(most.recent.call.last):.....
a9a0 2e 0a 54 79 70 65 45 72 72 6f 72 3a 20 66 69 65 21 0a 0a 0a 45 6e 73 75 72 65 20 74 68 61 74 20 ..TypeError:.fie!...Ensure.that.
a9c0 76 61 72 69 6f 75 73 20 79 69 65 6c 64 20 65 78 70 72 65 73 73 69 6f 6e 20 63 6f 6e 73 74 72 75 various.yield.expression.constru
a9e0 63 74 73 20 6d 61 6b 65 20 74 68 65 69 72 0a 65 6e 63 6c 6f 73 69 6e 67 20 66 75 6e 63 74 69 6f cts.make.their.enclosing.functio
aa00 6e 20 61 20 67 65 6e 65 72 61 74 6f 72 3a 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 78 20 2b n.a.generator:..>>>.def.f():.x.+
aa20 3d 20 79 69 65 6c 64 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e =.yield.>>>.type(f()).<type.'gen
aa40 65 72 61 74 6f 72 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 78 20 3d 20 79 69 65 6c 64 erator'>..>>>.def.f():.x.=.yield
aa60 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 .>>>.type(f()).<type.'generator'
aa80 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 6c 61 6d 62 64 61 20 78 3d 28 79 69 65 6c 64 29 >..>>>.def.f():.lambda.x=(yield)
aaa0 3a 20 31 0a 3e 3e 3e 20 74 79 70 65 28 66 28 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 :.1.>>>.type(f()).<type.'generat
aac0 6f 72 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 28 29 3a 20 78 3d 28 69 20 66 6f 72 20 69 20 69 6e or'>..>>>.def.f():.x=(i.for.i.in
aae0 20 28 79 69 65 6c 64 29 20 69 66 20 28 79 69 65 6c 64 29 29 0a 3e 3e 3e 20 74 79 70 65 28 66 28 .(yield).if.(yield)).>>>.type(f(
ab00 29 29 0a 3c 74 79 70 65 20 27 67 65 6e 65 72 61 74 6f 72 27 3e 0a 0a 3e 3e 3e 20 64 65 66 20 66 )).<type.'generator'>..>>>.def.f
ab20 28 64 29 3a 20 64 5b 28 79 69 65 6c 64 20 22 61 22 29 5d 20 3d 20 64 5b 28 79 69 65 6c 64 20 22 (d):.d[(yield."a")].=.d[(yield."
ab40 62 22 29 5d 20 3d 20 32 37 0a 3e 3e 3e 20 64 61 74 61 20 3d 20 5b 31 2c 32 5d 0a 3e 3e 3e 20 67 b")].=.27.>>>.data.=.[1,2].>>>.g
ab60 20 3d 20 66 28 64 61 74 61 29 0a 3e 3e 3e 20 74 79 70 65 28 67 29 0a 3c 74 79 70 65 20 27 67 65 .=.f(data).>>>.type(g).<type.'ge
ab80 6e 65 72 61 74 6f 72 27 3e 0a 3e 3e 3e 20 67 2e 73 65 6e 64 28 4e 6f 6e 65 29 0a 27 61 27 0a 3e nerator'>.>>>.g.send(None).'a'.>
aba0 3e 3e 20 64 61 74 61 0a 5b 31 2c 20 32 5d 0a 3e 3e 3e 20 67 2e 73 65 6e 64 28 30 29 0a 27 62 27 >>.data.[1,.2].>>>.g.send(0).'b'
abc0 0a 3e 3e 3e 20 64 61 74 61 0a 5b 32 37 2c 20 32 5d 0a 3e 3e 3e 20 74 72 79 3a 20 67 2e 73 65 6e .>>>.data.[27,.2].>>>.try:.g.sen
abe0 64 28 31 29 0a 2e 2e 2e 20 65 78 63 65 70 74 20 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 3a 20 70 d(1).....except.StopIteration:.p
ac00 61 73 73 0a 3e 3e 3e 20 64 61 74 61 0a 5b 32 37 2c 20 32 37 5d 0a 0a 73 53 07 00 00 0a 50 72 69 ass.>>>.data.[27,.27]..sS....Pri
ac20 6f 72 20 74 6f 20 61 64 64 69 6e 67 20 63 79 63 6c 65 2d 47 43 20 73 75 70 70 6f 72 74 20 74 6f or.to.adding.cycle-GC.support.to
ac40 20 69 74 65 72 74 6f 6f 6c 73 2e 74 65 65 2c 20 74 68 69 73 20 63 6f 64 65 20 77 6f 75 6c 64 20 .itertools.tee,.this.code.would.
ac60 6c 65 61 6b 0a 72 65 66 65 72 65 6e 63 65 73 2e 20 57 65 20 61 64 64 20 69 74 20 74 6f 20 74 68 leak.references..We.add.it.to.th
ac80 65 20 73 74 61 6e 64 61 72 64 20 73 75 69 74 65 20 73 6f 20 74 68 65 20 72 6f 75 74 69 6e 65 20 e.standard.suite.so.the.routine.
aca0 72 65 66 6c 65 61 6b 2d 74 65 73 74 73 0a 77 6f 75 6c 64 20 74 72 69 67 67 65 72 20 69 66 20 69 refleak-tests.would.trigger.if.i
acc0 74 20 73 74 61 72 74 73 20 62 65 69 6e 67 20 75 6e 63 6c 65 61 6e 61 62 6c 65 20 61 67 61 69 6e t.starts.being.uncleanable.again
ace0 2e 0a 0a 3e 3e 3e 20 69 6d 70 6f 72 74 20 69 74 65 72 74 6f 6f 6c 73 0a 3e 3e 3e 20 64 65 66 20 ...>>>.import.itertools.>>>.def.
ad00 6c 65 61 6b 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 63 6c 61 73 73 20 67 65 6e 3a 0a 2e 2e 2e 20 20 leak():.........class.gen:......
ad20 20 20 20 20 20 20 20 64 65 66 20 5f 5f 69 74 65 72 5f 5f 28 73 65 6c 66 29 3a 0a 2e 2e 2e 20 20 .......def.__iter__(self):......
ad40 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 0a 2e 2e 2e 20 20 20 20 20 20 ...........return.self..........
ad60 20 20 20 64 65 66 20 6e 65 78 74 28 73 65 6c 66 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 ...def.next(self):..............
ad80 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 2e 69 74 65 6d 0a 2e 2e 2e 20 20 20 20 20 67 20 3d 20 ...return.self.item.........g.=.
ada0 67 65 6e 28 29 0a 2e 2e 2e 20 20 20 20 20 68 65 61 64 2c 20 74 61 69 6c 20 3d 20 69 74 65 72 74 gen().........head,.tail.=.itert
adc0 6f 6f 6c 73 2e 74 65 65 28 67 29 0a 2e 2e 2e 20 20 20 20 20 67 2e 69 74 65 6d 20 3d 20 68 65 61 ools.tee(g).........g.item.=.hea
ade0 64 0a 2e 2e 2e 20 20 20 20 20 72 65 74 75 72 6e 20 68 65 61 64 0a 3e 3e 3e 20 69 74 20 3d 20 6c d.........return.head.>>>.it.=.l
ae00 65 61 6b 28 29 0a 0a 4d 61 6b 65 20 73 75 72 65 20 74 6f 20 61 6c 73 6f 20 74 65 73 74 20 74 68 eak()..Make.sure.to.also.test.th
ae20 65 20 69 6e 76 6f 6c 76 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 74 65 65 2d 69 6e 74 65 72 6e 61 e.involvement.of.the.tee-interna
ae40 6c 20 74 65 65 64 61 74 61 6f 62 6a 65 63 74 2c 0a 77 68 69 63 68 20 73 74 6f 72 65 73 20 72 65 l.teedataobject,.which.stores.re
ae60 74 75 72 6e 65 64 20 69 74 65 6d 73 2e 0a 0a 3e 3e 3e 20 69 74 65 6d 20 3d 20 69 74 2e 6e 65 78 turned.items...>>>.item.=.it.nex
ae80 74 28 29 0a 0a 0a 0a 54 68 69 73 20 74 65 73 74 20 6c 65 61 6b 65 64 20 61 74 20 6f 6e 65 20 70 t()....This.test.leaked.at.one.p
aea0 6f 69 6e 74 20 64 75 65 20 74 6f 20 67 65 6e 65 72 61 74 6f 72 20 66 69 6e 61 6c 69 7a 61 74 69 oint.due.to.generator.finalizati
aec0 6f 6e 2f 64 65 73 74 72 75 63 74 69 6f 6e 2e 0a 49 74 20 77 61 73 20 63 6f 70 69 65 64 20 66 72 on/destruction..It.was.copied.fr
aee0 6f 6d 20 4c 69 62 2f 74 65 73 74 2f 6c 65 61 6b 65 72 73 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 om.Lib/test/leakers/test_generat
af00 6f 72 5f 63 79 63 6c 65 2e 70 79 20 62 65 66 6f 72 65 20 74 68 65 20 66 69 6c 65 0a 77 61 73 20 or_cycle.py.before.the.file.was.
af20 72 65 6d 6f 76 65 64 2e 0a 0a 3e 3e 3e 20 64 65 66 20 6c 65 61 6b 28 29 3a 0a 2e 2e 2e 20 20 20 removed...>>>.def.leak():.......
af40 20 64 65 66 20 67 65 6e 28 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 54 72 75 .def.gen():............while.Tru
af60 65 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 79 69 65 6c 64 20 67 0a 2e 2e 2e 20 20 20 e:................yield.g.......
af80 20 67 20 3d 20 67 65 6e 28 29 0a 0a 3e 3e 3e 20 6c 65 61 6b 28 29 0a 0a 0a 0a 54 68 69 73 20 74 .g.=.gen()..>>>.leak()....This.t
afa0 65 73 74 20 69 73 6e 27 74 20 72 65 61 6c 6c 79 20 67 65 6e 65 72 61 74 6f 72 20 72 65 6c 61 74 est.isn't.really.generator.relat
afc0 65 64 2c 20 62 75 74 20 72 61 74 68 65 72 20 65 78 63 65 70 74 69 6f 6e 2d 69 6e 2d 63 6c 65 61 ed,.but.rather.exception-in-clea
afe0 6e 75 70 0a 72 65 6c 61 74 65 64 2e 20 54 68 65 20 63 6f 72 6f 75 74 69 6e 65 20 74 65 73 74 73 nup.related..The.coroutine.tests
b000 20 28 61 62 6f 76 65 29 20 6a 75 73 74 20 68 61 70 70 65 6e 20 74 6f 20 63 61 75 73 65 20 61 6e .(above).just.happen.to.cause.an
b020 20 65 78 63 65 70 74 69 6f 6e 20 69 6e 0a 74 68 65 20 67 65 6e 65 72 61 74 6f 72 27 73 20 5f 5f .exception.in.the.generator's.__
b040 64 65 6c 5f 5f 20 28 74 70 5f 64 65 6c 29 20 6d 65 74 68 6f 64 2e 20 57 65 20 63 61 6e 20 61 6c del__.(tp_del).method..We.can.al
b060 73 6f 20 74 65 73 74 20 66 6f 72 20 74 68 69 73 0a 65 78 70 6c 69 63 69 74 6c 79 2c 20 77 69 74 so.test.for.this.explicitly,.wit
b080 68 6f 75 74 20 67 65 6e 65 72 61 74 6f 72 73 2e 20 57 65 20 64 6f 20 68 61 76 65 20 74 6f 20 72 hout.generators..We.do.have.to.r
b0a0 65 64 69 72 65 63 74 20 73 74 64 65 72 72 20 74 6f 20 61 76 6f 69 64 0a 70 72 69 6e 74 69 6e 67 edirect.stderr.to.avoid.printing
b0c0 20 77 61 72 6e 69 6e 67 73 20 61 6e 64 20 74 6f 20 64 6f 75 62 6c 65 63 68 65 63 6b 20 74 68 61 .warnings.and.to.doublecheck.tha
b0e0 74 20 77 65 20 61 63 74 75 61 6c 6c 79 20 74 65 73 74 65 64 20 77 68 61 74 20 77 65 20 77 61 6e t.we.actually.tested.what.we.wan
b100 74 65 64 0a 74 6f 20 74 65 73 74 2e 0a 0a 3e 3e 3e 20 69 6d 70 6f 72 74 20 73 79 73 2c 20 53 74 ted.to.test...>>>.import.sys,.St
b120 72 69 6e 67 49 4f 0a 3e 3e 3e 20 6f 6c 64 20 3d 20 73 79 73 2e 73 74 64 65 72 72 0a 3e 3e 3e 20 ringIO.>>>.old.=.sys.stderr.>>>.
b140 74 72 79 3a 0a 2e 2e 2e 20 20 20 20 20 73 79 73 2e 73 74 64 65 72 72 20 3d 20 53 74 72 69 6e 67 try:.........sys.stderr.=.String
b160 49 4f 2e 53 74 72 69 6e 67 49 4f 28 29 0a 2e 2e 2e 20 20 20 20 20 63 6c 61 73 73 20 4c 65 61 6b IO.StringIO().........class.Leak
b180 65 72 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 64 65 66 20 5f 5f 64 65 6c 5f 5f 28 73 65 6c 66 er:.............def.__del__(self
b1a0 29 3a 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 72 61 69 73 65 20 52 75 6e 74 69 6d 65 ):.................raise.Runtime
b1c0 45 72 72 6f 72 0a 2e 2e 2e 0a 2e 2e 2e 20 20 20 20 20 6c 20 3d 20 4c 65 61 6b 65 72 28 29 0a 2e Error.............l.=.Leaker()..
b1e0 2e 2e 20 20 20 20 20 64 65 6c 20 6c 0a 2e 2e 2e 20 20 20 20 20 65 72 72 20 3d 20 73 79 73 2e 73 .......del.l.........err.=.sys.s
b200 74 64 65 72 72 2e 67 65 74 76 61 6c 75 65 28 29 2e 73 74 72 69 70 28 29 0a 2e 2e 2e 20 20 20 20 tderr.getvalue().strip()........
b220 20 65 72 72 2e 73 74 61 72 74 73 77 69 74 68 28 0a 2e 2e 2e 20 20 20 20 20 20 20 20 20 22 45 78 .err.startswith(............."Ex
b240 63 65 70 74 69 6f 6e 20 52 75 6e 74 69 6d 65 45 72 72 6f 72 3a 20 52 75 6e 74 69 6d 65 45 72 72 ception.RuntimeError:.RuntimeErr
b260 6f 72 28 29 20 69 6e 20 3c 22 0a 2e 2e 2e 20 20 20 20 20 29 0a 2e 2e 2e 20 20 20 20 20 65 72 72 or().in.<".........).........err
b280 2e 65 6e 64 73 77 69 74 68 28 22 3e 20 69 67 6e 6f 72 65 64 22 29 0a 2e 2e 2e 20 20 20 20 20 6c .endswith(">.ignored").........l
b2a0 65 6e 28 65 72 72 2e 73 70 6c 69 74 6c 69 6e 65 73 28 29 29 0a 2e 2e 2e 20 66 69 6e 61 6c 6c 79 en(err.splitlines()).....finally
b2c0 3a 0a 2e 2e 2e 20 20 20 20 20 73 79 73 2e 73 74 64 65 72 72 20 3d 20 6f 6c 64 0a 54 72 75 65 0a :.........sys.stderr.=.old.True.
b2e0 54 72 75 65 0a 31 0a 0a 0a 0a 54 68 65 73 65 20 72 65 66 6c 65 61 6b 20 74 65 73 74 73 20 73 68 True.1....These.refleak.tests.sh
b300 6f 75 6c 64 20 70 65 72 68 61 70 73 20 62 65 20 69 6e 20 61 20 74 65 73 74 66 69 6c 65 20 6f 66 ould.perhaps.be.in.a.testfile.of
b320 20 74 68 65 69 72 20 6f 77 6e 2c 0a 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 20 6a 75 73 74 .their.own,.test_generators.just
b340 20 68 61 70 70 65 6e 65 64 20 74 6f 20 62 65 20 74 68 65 20 74 65 73 74 20 74 68 61 74 20 64 72 .happened.to.be.the.test.that.dr
b360 65 77 20 74 68 65 73 65 20 6f 75 74 2e 0a 0a 74 03 00 00 00 74 75 74 74 03 00 00 00 70 65 70 74 ew.these.out...t....tutt....pept
b380 05 00 00 00 65 6d 61 69 6c 74 03 00 00 00 66 75 6e 74 06 00 00 00 73 79 6e 74 61 78 52 10 00 00 ....emailt....funt....syntaxR...
b3a0 00 74 07 00 00 00 77 65 61 6b 72 65 66 74 09 00 00 00 63 6f 72 6f 75 74 69 6e 65 74 08 00 00 00 .t....weakreft....coroutinet....
b3c0 72 65 66 6c 65 61 6b 73 63 01 00 00 00 03 00 00 00 03 00 00 00 43 00 00 00 73 2a 00 00 00 64 01 refleaksc............C...s*...d.
b3e0 00 64 02 00 6c 00 00 6d 01 00 7d 01 00 6d 02 00 7d 02 00 01 7c 01 00 6a 03 00 7c 02 00 7c 00 00 .d..l..m..}..m..}...|..j..|..|..
b400 83 02 00 01 64 00 00 53 28 03 00 00 00 4e 69 ff ff ff ff 28 02 00 00 00 74 0c 00 00 00 74 65 73 ....d..S(....Ni....(....t....tes
b420 74 5f 73 75 70 70 6f 72 74 74 0f 00 00 00 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 28 04 00 t_supportt....test_generators(..
b440 00 00 74 04 00 00 00 74 65 73 74 52 64 00 00 00 52 65 00 00 00 74 0b 00 00 00 72 75 6e 5f 64 6f ..t....testRd...Re...t....run_do
b460 63 74 65 73 74 28 03 00 00 00 74 07 00 00 00 76 65 72 62 6f 73 65 52 64 00 00 00 52 65 00 00 00 ctest(....t....verboseRd...Re...
b480 28 00 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 (....(....s\.../tmp/ndk-User/bui
b4a0 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 ldhost/install/prebuilt/darwin-x
b4c0 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 86_64/lib/python2.7/test/test_ge
b4e0 6e 65 72 61 74 6f 72 73 2e 70 79 74 09 00 00 00 74 65 73 74 5f 6d 61 69 6e 6d 07 00 00 73 04 00 nerators.pyt....test_mainm...s..
b500 00 00 00 01 16 01 74 08 00 00 00 5f 5f 6d 61 69 6e 5f 5f 69 01 00 00 00 4e 28 12 00 00 00 74 0e ......t....__main__i....N(....t.
b520 00 00 00 74 75 74 6f 72 69 61 6c 5f 74 65 73 74 73 74 09 00 00 00 70 65 70 5f 74 65 73 74 73 74 ...tutorial_testst....pep_testst
b540 0b 00 00 00 65 6d 61 69 6c 5f 74 65 73 74 73 74 09 00 00 00 66 75 6e 5f 74 65 73 74 73 74 0c 00 ....email_testst....fun_testst..
b560 00 00 73 79 6e 74 61 78 5f 74 65 73 74 73 52 07 00 00 00 52 10 00 00 00 52 16 00 00 00 52 17 00 ..syntax_testsR....R....R....R..
b580 00 00 52 2f 00 00 00 74 0d 00 00 00 63 6f 6e 6a 6f 69 6e 5f 74 65 73 74 73 74 0d 00 00 00 77 65 ..R/...t....conjoin_testst....we
b5a0 61 6b 72 65 66 5f 74 65 73 74 73 74 0f 00 00 00 63 6f 72 6f 75 74 69 6e 65 5f 74 65 73 74 73 74 akref_testst....coroutine_testst
b5c0 0e 00 00 00 72 65 66 6c 65 61 6b 73 5f 74 65 73 74 73 74 08 00 00 00 5f 5f 74 65 73 74 5f 5f 52 ....refleaks_testst....__test__R
b5e0 06 00 00 00 52 69 00 00 00 52 2d 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 5c 00 ....Ri...R-...(....(....(....s\.
b600 00 00 2f 74 6d 70 2f 6e 64 6b 2d 55 73 65 72 2f 62 75 69 6c 64 68 6f 73 74 2f 69 6e 73 74 61 6c ../tmp/ndk-User/buildhost/instal
b620 6c 2f 70 72 65 62 75 69 6c 74 2f 64 61 72 77 69 6e 2d 78 38 36 5f 36 34 2f 6c 69 62 2f 70 79 74 l/prebuilt/darwin-x86_64/lib/pyt
b640 68 6f 6e 32 2e 37 2f 74 65 73 74 2f 74 65 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 08 hon2.7/test/test_generators.pyt.
b660 00 00 00 3c 6d 6f 64 75 6c 65 3e 84 00 00 00 73 36 00 00 00 06 a5 06 be 06 ee 06 d9 06 16 09 15 ...<module>....s6...............
b680 09 3d 09 24 13 37 13 ff 00 51 06 18 06 ff 00 39 06 4b 06 02 0a 01 07 01 07 01 07 01 07 01 07 01 .=.$.7...Q.....9.K..............
b6a0 07 01 07 01 0a 07 0c 05 0c 01 ..........