summaryrefslogtreecommitdiff
path: root/lib/python2.7/test/test_generators.pyc
blob: 3b374aaa9d650ef6080f9120c9e4cd1ac1aaa6c5 (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 07 00 00 00 33 00 00 00 73 20 01 00 00 7c 00 00 88 ......c............3...s....|...
6180 02 00 6b 00 00 72 20 00 88 02 00 7c 00 00 18 64 01 00 16 64 02 00 6b 02 00 73 26 00 74 00 00 82 ..k..r.....|...d...d..k..s&.t...
61a0 01 00 7c 00 00 64 03 00 17 7c 00 00 64 04 00 17 7c 00 00 64 01 00 17 03 02 7d 01 00 7d 02 00 7d ..|..d...|..d...|..d.....}..}..}
61c0 03 00 88 01 00 7c 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 .....|..|..!\..}..}..}..|.....k.
61e0 00 72 b8 00 78 b1 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 .r..x..|.....D]?....|..<x2.|....
6200 00 44 5d 27 00 88 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 .D]'....|..<x..|.....D].....|..<
6220 88 03 00 56 01 71 9a 00 57 71 86 00 57 71 72 00 57 6e 64 00 78 61 00 7c 04 00 83 00 00 44 5d 56 ...V.q..Wq..Wqr.Wnd.xa.|.....D]V
6240 00 88 03 00 7c 00 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 ....|..<xI.|.....D]>....|..<x1.|
6260 06 00 83 00 00 44 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 .....D]&....|..<x.....|.....D]..
6280 7d 07 00 7c 07 00 56 01 71 01 01 57 71 ea 00 57 71 d6 00 57 71 c2 00 57 64 00 00 53 28 05 00 00 }..|..V.q..Wq..Wq..Wq..Wd..S(...
62a0 00 4e 69 03 00 00 00 69 00 00 00 00 69 01 00 00 00 69 02 00 00 00 28 01 00 00 00 74 0e 00 00 00 .Ni....i....i....i....(....t....
62c0 41 73 73 65 72 74 69 6f 6e 45 72 72 6f 72 28 08 00 00 00 52 01 00 00 00 52 08 00 00 00 74 03 00 AssertionError(....R....R....t..
62e0 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 00 67 ..ip2t....ip3t....gt....g1t....g
6300 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 00 28 2R....(....R....R....R....R....(
6320 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 74 ....s\.../tmp/ndk-User/buildhost
6340 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 2f /install/prebuilt/darwin-x86_64/
6360 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 6f lib/python2.7/test/test_generato
6380 72 73 2e 70 79 52 09 00 00 00 f3 03 00 00 73 1a 00 00 00 00 01 26 01 20 01 16 02 0c 02 14 01 14 rs.pyR........s......&..........
63a0 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...
63c0 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
63e0 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
6400 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
6420 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
6440 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
6460 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..........
6480 00 00 63 00 00 00 73 1b 01 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..|..
64a0 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 e2 00 .}..d..g..|...}..t..}..d..}..x..
64c0 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...
64e0 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}.
6500 00 71 3b 00 57 57 6e 11 00 04 7c 04 00 6b 0a 00 72 8e 00 01 01 01 6e 18 00 58 7c 05 00 7c 01 00 .q;.WWn...|..k..r.....n..X|..|..
6520 6b 02 00 73 a1 00 74 04 00 82 01 00 7c 02 00 56 01 7c 05 00 64 02 00 38 7d 05 00 78 61 00 7c 05 k..s..t.....|..V.|..d..8}..xa.|.
6540 00 64 01 00 6b 05 00 72 00 01 79 20 00 7c 03 00 7c 05 00 19 83 00 00 7c 02 00 7c 05 00 3c 7c 05 .d..k..r..y..|..|......|..|..<|.
6560 00 64 02 00 37 7d 05 00 50 57 71 b3 00 04 7c 04 00 6b 0a 00 72 fc 00 01 01 01 7c 05 00 64 02 00 .d..7}..PWq...|..k..r.....|..d..
6580 38 7d 05 00 71 b3 00 58 71 b3 00 57 7c 05 00 64 01 00 6b 00 00 73 13 01 74 04 00 82 01 00 50 71 8}..q..Xq..W|..d..k..s..t.....Pq
65a0 35 00 64 00 00 53 28 03 00 00 00 4e 69 00 00 00 00 69 01 00 00 00 28 05 00 00 00 52 00 00 00 00 5.d..S(....Ni....i....(....R....
65c0 52 06 00 00 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 R....t....StopIterationt....next
65e0 52 0b 00 00 00 28 07 00 00 00 52 04 00 00 00 52 0a 00 00 00 52 05 00 00 00 74 05 00 00 00 69 74 R....(....R....R....R....t....it
6600 65 72 73 74 0e 00 00 00 5f 53 74 6f 70 49 74 65 72 61 74 69 6f 6e 52 01 00 00 00 74 02 00 00 00 erst...._StopIterationR....t....
6620 69 74 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 it(....(....s\.../tmp/ndk-User/b
6640 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 6e uildhost/install/prebuilt/darwin
6660 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 5f -x86_64/lib/python2.7/test/test_
6680 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 0c 00 00 00 66 6c 61 74 5f 63 6f 6e 6a 6f 69 6e 16 04 generators.pyt....flat_conjoin..
66a0 00 00 73 32 00 00 00 00 01 0c 01 0d 01 0d 01 06 01 06 01 03 02 03 01 0f 01 18 01 0d 01 12 01 0d ..s2............................
66c0 01 04 02 12 01 05 03 0a 01 0f 01 03 01 11 02 0a 01 05 01 0d 02 12 02 12 01 74 06 00 00 00 51 75 .........................t....Qu
66e0 65 65 6e 73 63 00 00 00 00 00 00 00 00 01 00 00 00 42 00 00 00 73 23 00 00 00 65 00 00 5a 01 00 eensc............B...s#...e..Z..
6700 64 00 00 84 00 00 5a 02 00 64 01 00 84 00 00 5a 03 00 64 02 00 84 00 00 5a 04 00 52 53 28 03 00 d.....Z..d.....Z..d.....Z..RS(..
6720 00 00 63 02 00 00 00 06 00 00 00 08 00 00 00 03 00 00 00 73 a9 00 00 00 7c 01 00 88 01 00 5f 00 ..c................s....|....._.
6740 00 74 01 00 7c 01 00 83 01 00 89 00 00 67 00 00 88 01 00 5f 02 00 78 84 00 88 00 00 44 5d 7c 00 .t..|........g....._..x.....D]|.
6760 7d 02 00 67 00 00 88 00 00 44 5d 44 00 7d 03 00 64 01 00 7c 03 00 3e 64 01 00 7c 01 00 7c 02 00 }..g.....D]D.}..d..|..>d..|..|..
6780 17 7c 03 00 18 7c 01 00 17 64 02 00 18 3e 42 64 01 00 7c 01 00 64 03 00 7c 01 00 14 17 64 02 00 .|...|...d...>Bd..|..d..|....d..
67a0 18 7c 02 00 17 7c 03 00 17 3e 42 5e 02 00 71 32 00 7d 04 00 7c 04 00 87 00 00 87 01 00 66 02 00 .|...|...>B^..q2.}..|........f..
67c0 64 04 00 86 01 00 7d 05 00 88 01 00 6a 02 00 6a 03 00 7c 05 00 83 01 00 01 71 25 00 57 64 00 00 d.....}.....j..j..|......q%.Wd..
67e0 53 28 05 00 00 00 4e 6c 01 00 00 00 01 00 69 01 00 00 00 69 02 00 00 00 63 01 00 00 00 03 00 00 S(....Nl......i....i....c.......
6800 00 04 00 00 00 33 00 00 00 73 59 00 00 00 78 52 00 88 00 00 44 5d 4a 00 7d 01 00 7c 00 00 7c 01 .....3...sY...xR....D]J.}..|..|.
6820 00 19 7d 02 00 7c 02 00 88 01 00 6a 00 00 40 64 01 00 6b 02 00 72 07 00 88 01 00 04 6a 00 00 7c ..}..|.....j..@d..k..r......j..|
6840 02 00 4f 02 5f 00 00 7c 01 00 56 01 88 01 00 04 6a 00 00 7c 02 00 0f 4d 02 5f 00 00 71 07 00 71 ..O._..|..V.....j..|...M._..q..q
6860 07 00 57 64 00 00 53 28 02 00 00 00 4e 69 00 00 00 00 28 01 00 00 00 74 04 00 00 00 75 73 65 64 ..Wd..S(....Ni....(....t....used
6880 28 03 00 00 00 74 07 00 00 00 72 6f 77 75 73 65 73 74 01 00 00 00 6a 74 04 00 00 00 75 73 65 73 (....t....rowusest....jt....uses
68a0 28 02 00 00 00 74 06 00 00 00 72 61 6e 67 65 6e 74 04 00 00 00 73 65 6c 66 28 00 00 00 00 73 5c (....t....rangent....self(....s\
68c0 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 61 .../tmp/ndk-User/buildhost/insta
68e0 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 79 ll/prebuilt/darwin-x86_64/lib/py
6900 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 74 thon2.7/test/test_generators.pyt
6920 06 00 00 00 72 6f 77 67 65 6e 51 04 00 00 73 0c 00 00 00 00 01 0d 01 0a 01 13 01 0f 01 05 01 28 ....rowgenQ...s................(
6940 04 00 00 00 52 0a 00 00 00 74 05 00 00 00 72 61 6e 67 65 74 0d 00 00 00 72 6f 77 67 65 6e 65 72 ....R....t....ranget....rowgener
6960 61 74 6f 72 73 74 06 00 00 00 61 70 70 65 6e 64 28 06 00 00 00 52 1e 00 00 00 52 0a 00 00 00 52 atorst....append(....R....R....R
6980 01 00 00 00 52 1b 00 00 00 52 1a 00 00 00 52 1f 00 00 00 28 00 00 00 00 28 02 00 00 00 52 1d 00 ....R....R....R....(....(....R..
69a0 00 00 52 1e 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 ..R....s\.../tmp/ndk-User/buildh
69c0 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 5f ost/install/prebuilt/darwin-x86_
69e0 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 72 64/lib/python2.7/test/test_gener
6a00 61 74 6f 72 73 2e 70 79 74 08 00 00 00 5f 5f 69 6e 69 74 5f 5f 3b 04 00 00 73 10 00 00 00 00 01 ators.pyt....__init__;...s......
6a20 09 01 0c 0d 09 01 0d 01 03 03 4e 02 15 08 63 01 00 00 00 02 00 00 00 02 00 00 00 63 00 00 00 73 ..........N...c............c...s
6a40 2c 00 00 00 64 01 00 7c 00 00 5f 00 00 78 1c 00 74 01 00 7c 00 00 6a 02 00 83 01 00 44 5d 0b 00 ,...d..|.._..x..t..|..j.....D]..
6a60 7d 01 00 7c 01 00 56 01 71 19 00 57 64 00 00 53 28 02 00 00 00 4e 69 00 00 00 00 28 03 00 00 00 }..|..V.q..Wd..S(....Ni....(....
6a80 52 19 00 00 00 52 11 00 00 00 52 21 00 00 00 28 02 00 00 00 52 1e 00 00 00 74 07 00 00 00 72 6f R....R....R!...(....R....t....ro
6aa0 77 32 63 6f 6c 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 w2col(....(....s\.../tmp/ndk-Use
6ac0 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
6ae0 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
6b00 73 74 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 05 00 00 00 73 6f 6c 76 65 5c 04 00 00 73 06 st_generators.pyt....solve\...s.
6b20 00 00 00 00 01 09 01 16 01 63 02 00 00 00 07 00 00 00 05 00 00 00 43 00 00 00 73 97 00 00 00 7c .........c............C...s....|
6b40 00 00 6a 00 00 7d 02 00 7c 02 00 74 01 00 7c 01 00 83 01 00 6b 02 00 73 21 00 74 02 00 82 01 00 ..j..}..|..t..|.....k..s!.t.....
6b60 64 01 00 64 02 00 7c 02 00 14 17 7d 03 00 7c 03 00 47 48 78 5c 00 74 03 00 7c 02 00 83 01 00 44 d..d..|....}..|..GHx\.t..|.....D
6b80 5d 4e 00 7d 04 00 67 00 00 74 03 00 7c 02 00 83 01 00 44 5d 0c 00 7d 05 00 64 03 00 5e 02 00 71 ]N.}..g..t..|.....D]..}..d..^..q
6ba0 54 00 7d 06 00 64 04 00 7c 06 00 7c 01 00 7c 04 00 19 3c 64 05 00 64 05 00 6a 04 00 7c 06 00 83 T.}..d..|..|..|...<d..d..j..|...
6bc0 01 00 17 64 05 00 17 47 48 7c 03 00 47 48 71 41 00 57 64 00 00 53 28 06 00 00 00 4e 74 01 00 00 ...d...GH|..GHqA.Wd..S(....Nt...
6be0 00 2b 73 02 00 00 00 2d 2b 74 01 00 00 00 20 74 01 00 00 00 51 74 01 00 00 00 7c 28 05 00 00 00 .+s....-+t.....t....Qt....|(....
6c00 52 0a 00 00 00 52 00 00 00 00 52 0b 00 00 00 52 20 00 00 00 74 04 00 00 00 6a 6f 69 6e 28 07 00 R....R....R....R....t....join(..
6c20 00 00 52 1e 00 00 00 52 24 00 00 00 52 0a 00 00 00 74 03 00 00 00 73 65 70 52 01 00 00 00 52 1b ..R....R$...R....t....sepR....R.
6c40 00 00 00 74 07 00 00 00 73 71 75 61 72 65 73 28 00 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 ...t....squares(....(....s\.../t
6c60 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
6c80 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
6ca0 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 0d 00 00 00 70 .7/test/test_generators.pyt....p
6cc0 72 69 6e 74 73 6f 6c 75 74 69 6f 6e 61 04 00 00 73 12 00 00 00 00 01 09 01 18 01 0e 01 05 01 13 rintsolutiona...s...............
6ce0 01 1f 01 0e 01 16 01 28 05 00 00 00 74 08 00 00 00 5f 5f 6e 61 6d 65 5f 5f 74 0a 00 00 00 5f 5f .......(....t....__name__t....__
6d00 6d 6f 64 75 6c 65 5f 5f 52 23 00 00 00 52 25 00 00 00 52 2d 00 00 00 28 00 00 00 00 28 00 00 00 module__R#...R%...R-...(....(...
6d20 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
6d40 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
6d60 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
6d80 74 6f 72 73 2e 70 79 52 18 00 00 00 3a 04 00 00 73 06 00 00 00 06 01 09 21 09 05 74 07 00 00 00 tors.pyR....:...s.......!..t....
6da0 4b 6e 69 67 68 74 73 63 00 00 00 00 00 00 00 00 02 00 00 00 42 00 00 00 73 41 00 00 00 65 00 00 Knightsc............B...sA...e..
6dc0 5a 01 00 64 00 00 64 01 00 84 01 00 5a 02 00 64 02 00 84 00 00 5a 03 00 64 03 00 84 00 00 5a 04 Z..d..d.....Z..d.....Z..d.....Z.
6de0 00 64 04 00 84 00 00 5a 05 00 64 05 00 84 00 00 5a 06 00 64 06 00 84 00 00 5a 07 00 52 53 28 07 .d.....Z..d.....Z..d.....Z..RS(.
6e00 00 00 00 69 00 00 00 00 63 04 00 00 00 09 00 00 00 07 00 00 00 03 00 00 00 73 30 01 00 00 88 01 ...i....c................s0.....
6e20 00 88 02 00 02 88 04 00 5f 00 00 88 04 00 5f 01 00 67 00 00 04 89 05 00 88 04 00 5f 02 00 74 03 ........_....._..g........._..t.
6e40 00 87 05 00 66 01 00 64 01 00 86 01 00 89 03 00 87 05 00 66 01 00 64 02 00 86 00 00 89 00 00 87 ....f..d...........f..d.........
6e60 00 00 87 01 00 87 02 00 87 03 00 87 04 00 66 05 00 64 03 00 86 00 00 7d 04 00 87 00 00 87 01 00 ..............f..d.....}........
6e80 87 02 00 87 03 00 87 04 00 87 05 00 66 06 00 64 04 00 86 00 00 7d 05 00 74 03 00 87 00 00 87 03 ............f..d.....}..t.......
6ea0 00 87 04 00 87 05 00 66 04 00 64 05 00 86 01 00 7d 06 00 88 01 00 64 06 00 18 64 07 00 15 88 02 .......f..d.....}.....d...d.....
6ec0 00 64 06 00 18 64 07 00 15 74 03 00 87 00 00 87 03 00 87 04 00 87 05 00 66 04 00 64 08 00 86 03 .d...d...t..............f..d....
6ee0 00 7d 07 00 87 04 00 87 05 00 66 02 00 64 09 00 86 00 00 7d 08 00 88 01 00 88 02 00 14 64 0a 00 .}........f..d.....}.........d..
6f00 6b 00 00 72 f7 00 7c 04 00 67 01 00 88 04 00 5f 04 00 6e 35 00 7c 04 00 7c 05 00 67 02 00 7c 03 k..r..|..g....._..n5.|..|..g..|.
6f20 00 72 0c 01 7c 07 00 70 0f 01 7c 06 00 67 01 00 88 01 00 88 02 00 14 64 0b 00 18 14 17 7c 08 00 .r..|..p..|..g.........d.....|..
6f40 67 01 00 17 88 04 00 5f 04 00 64 00 00 53 28 0c 00 00 00 4e 63 02 00 00 00 07 00 00 00 03 00 00 g......_..d..S(....Nc...........
6f60 00 13 00 00 00 73 8a 00 00 00 64 01 00 04 7d 02 00 7d 03 00 78 67 00 88 00 00 7c 00 00 19 44 5d .....s....d...}..}..xg....|...D]
6f80 5b 00 7d 04 00 88 00 00 7c 04 00 19 7d 05 00 7c 05 00 6a 00 00 7c 00 00 83 01 00 01 7c 01 00 7c [.}.....|...}..|..j..|......|..|
6fa0 05 00 83 01 00 7d 06 00 7c 06 00 64 01 00 6b 02 00 72 57 00 7c 02 00 64 02 00 37 7d 02 00 71 15 .....}..|..d..k..rW.|..d..7}..q.
6fc0 00 7c 06 00 64 02 00 6b 02 00 72 15 00 7c 03 00 64 02 00 37 7d 03 00 71 15 00 71 15 00 57 7c 02 .|..d..k..r..|..d..7}..q..q..W|.
6fe0 00 64 01 00 6b 02 00 6f 89 00 7c 03 00 64 03 00 6b 00 00 53 28 04 00 00 00 4e 69 00 00 00 00 69 .d..k..o..|..d..k..S(....Ni....i
7000 01 00 00 00 69 02 00 00 00 28 01 00 00 00 74 06 00 00 00 72 65 6d 6f 76 65 28 07 00 00 00 74 02 ....i....(....t....remove(....t.
7020 00 00 00 69 30 52 00 00 00 00 74 03 00 00 00 6e 65 30 74 03 00 00 00 6e 65 31 52 01 00 00 00 74 ...i0R....t....ne0t....ne1R....t
7040 01 00 00 00 73 74 01 00 00 00 65 28 01 00 00 00 74 05 00 00 00 73 75 63 63 73 28 00 00 00 00 73 ....st....e(....t....succs(....s
7060 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
7080 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
70a0 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
70c0 74 16 00 00 00 72 65 6d 6f 76 65 5f 66 72 6f 6d 5f 73 75 63 63 65 73 73 6f 72 73 7d 04 00 00 73 t....remove_from_successors}...s
70e0 14 00 00 00 00 09 0a 01 11 01 0a 01 0d 01 0c 01 0c 01 0d 01 0c 01 11 01 63 01 00 00 00 02 00 00 ........................c.......
7100 00 03 00 00 00 13 00 00 00 73 2a 00 00 00 78 23 00 88 00 00 7c 00 00 19 44 5d 17 00 7d 01 00 88 .........s*...x#....|...D]..}...
7120 00 00 7c 01 00 19 6a 00 00 7c 00 00 83 01 00 01 71 0b 00 57 64 00 00 53 28 01 00 00 00 4e 28 01 ..|...j..|......q..Wd..S(....N(.
7140 00 00 00 52 22 00 00 00 28 02 00 00 00 52 32 00 00 00 52 01 00 00 00 28 01 00 00 00 52 37 00 00 ...R"...(....R2...R....(....R7..
7160 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
7180 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
71a0 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
71c0 74 6f 72 73 2e 70 79 74 11 00 00 00 61 64 64 5f 74 6f 5f 73 75 63 63 65 73 73 6f 72 73 93 04 00 tors.pyt....add_to_successors...
71e0 00 73 04 00 00 00 00 01 11 01 63 00 00 00 00 01 00 00 00 04 00 00 00 33 00 00 00 73 54 00 00 00 .s........c............3...sT...
7200 88 01 00 64 01 00 6b 00 00 73 18 00 88 02 00 64 01 00 6b 00 00 72 1c 00 64 00 00 53 88 04 00 6a ...d..k..s.....d..k..r..d..S...j
7220 00 00 64 02 00 64 02 00 83 02 00 7d 00 00 88 03 00 7c 00 00 83 01 00 01 7c 00 00 88 04 00 5f 01 ..d..d.....}.....|......|....._.
7240 00 7c 00 00 56 01 88 00 00 7c 00 00 83 01 00 01 64 00 00 53 28 03 00 00 00 4e 69 01 00 00 00 69 .|..V....|......d..S(....Ni....i
7260 00 00 00 00 28 02 00 00 00 74 0c 00 00 00 63 6f 6f 72 64 73 32 69 6e 64 65 78 74 06 00 00 00 6c ....(....t....coords2indext....l
7280 61 73 74 69 6a 28 01 00 00 00 74 06 00 00 00 63 6f 72 6e 65 72 28 05 00 00 00 52 39 00 00 00 74 astij(....t....corner(....R9...t
72a0 01 00 00 00 6d 52 0a 00 00 00 52 38 00 00 00 52 1e 00 00 00 28 00 00 00 00 73 5c 00 00 00 2f 74 ....mR....R8...R....(....s\.../t
72c0 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
72e0 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
7300 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 05 00 00 00 66 .7/test/test_generators.pyt....f
7320 69 72 73 74 98 04 00 00 73 0e 00 00 00 00 01 18 01 04 04 12 01 0a 01 09 01 05 01 63 00 00 00 00 irst....s..................c....
7340 05 00 00 00 06 00 00 00 33 00 00 00 73 3d 01 00 00 88 04 00 6a 00 00 64 01 00 64 01 00 83 02 00 ........3...s=......j..d..d.....
7360 7d 00 00 88 04 00 6a 01 00 7c 00 00 6b 02 00 73 27 00 74 02 00 82 01 00 88 01 00 64 02 00 6b 00 }.....j..|..k..s'.t........d..k.
7380 00 73 3f 00 88 02 00 64 02 00 6b 00 00 72 43 00 64 00 00 53 74 03 00 88 05 00 7c 00 00 19 83 01 .s?....d..k..rC.d..St.....|.....
73a0 00 64 03 00 6b 02 00 73 5f 00 74 02 00 82 01 00 88 04 00 6a 00 00 64 04 00 64 03 00 83 02 00 88 .d..k..s_.t........j..d..d......
73c0 05 00 7c 00 00 19 6b 06 00 73 81 00 74 02 00 82 01 00 88 04 00 6a 00 00 64 03 00 64 04 00 83 02 ..|...k..s..t........j..d..d....
73e0 00 88 05 00 7c 00 00 19 6b 06 00 73 a3 00 74 02 00 82 01 00 78 93 00 64 05 00 64 06 00 66 02 00 ....|...k..s..t.....x..d..d..f..
7400 44 5d 85 00 5c 02 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 D]..\..}..}.....j..|..|.....}...
7420 04 00 6a 00 00 64 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 ..j..d..|...d..|......}..|....._
7440 04 00 88 03 00 7c 03 00 83 01 00 01 88 05 00 7c 04 00 19 6a 05 00 7c 00 00 83 01 00 01 7c 03 00 .....|.........|...j..|......|..
7460 88 04 00 5f 01 00 7c 03 00 56 01 88 05 00 7c 04 00 19 6a 06 00 7c 00 00 83 01 00 01 88 00 00 7c ..._..|..V....|...j..|.........|
7480 03 00 83 01 00 01 71 b0 00 57 64 00 00 53 28 07 00 00 00 4e 69 00 00 00 00 69 03 00 00 00 69 02 ......q..Wd..S(....Ni....i....i.
74a0 00 00 00 69 01 00 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 ...i....(....i....i....(....i...
74c0 00 69 01 00 00 00 28 07 00 00 00 52 3a 00 00 00 52 3b 00 00 00 52 0b 00 00 00 52 00 00 00 00 74 .i....(....R:...R;...R....R....t
74e0 05 00 00 00 66 69 6e 61 6c 52 22 00 00 00 52 31 00 00 00 28 05 00 00 00 52 3c 00 00 00 52 01 00 ....finalR"...R1...(....R<...R..
7500 00 00 52 1b 00 00 00 74 04 00 00 00 74 68 69 73 52 3f 00 00 00 28 06 00 00 00 52 39 00 00 00 52 ..R....t....thisR?...(....R9...R
7520 3d 00 00 00 52 0a 00 00 00 52 38 00 00 00 52 1e 00 00 00 52 37 00 00 00 28 00 00 00 00 73 5c 00 =...R....R8...R....R7...(....s\.
7540 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
7560 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
7580 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 06 hon2.7/test/test_generators.pyt.
75a0 00 00 00 73 65 63 6f 6e 64 a5 04 00 00 73 22 00 00 00 00 01 12 01 15 01 18 01 04 01 1c 01 22 01 ...second....s"...............".
75c0 22 05 19 01 12 01 1a 01 09 02 0a 01 11 01 09 01 05 01 11 01 63 01 00 00 00 04 00 00 00 04 00 00 "...................c...........
75e0 00 33 00 00 00 73 d6 00 00 00 67 00 00 7d 01 00 78 79 00 88 03 00 88 02 00 6a 00 00 19 44 5d 60 .3...s....g..}..xy.......j...D]`
7600 00 7d 02 00 7c 00 00 88 03 00 7c 02 00 19 83 01 00 7d 03 00 7c 03 00 64 01 00 6b 04 00 73 42 00 .}..|.....|......}..|..d..k..sB.
7620 74 01 00 64 02 00 83 01 00 82 01 00 7c 03 00 64 03 00 6b 02 00 72 61 00 7c 03 00 7c 02 00 66 02 t..d........|..d..k..ra.|..|..f.
7640 00 67 01 00 7d 01 00 50 6e 00 00 7c 01 00 6a 02 00 7c 03 00 7c 02 00 66 02 00 83 01 00 01 71 14 .g..}..Pn..|..j..|..|..f......q.
7660 00 57 7c 01 00 6a 03 00 83 00 00 01 78 4d 00 7c 01 00 44 5d 45 00 5c 02 00 7d 03 00 7d 02 00 7c .W|..j......xM.|..D]E.\..}..}..|
7680 02 00 88 02 00 6a 04 00 6b 03 00 72 89 00 88 01 00 7c 02 00 83 01 00 72 c1 00 7c 02 00 88 02 00 .....j..k..r.....|.....r..|.....
76a0 5f 00 00 7c 02 00 56 01 6e 00 00 88 00 00 7c 02 00 83 01 00 01 71 89 00 71 89 00 57 64 00 00 53 _..|..V.n.....|......q..q..Wd..S
76c0 28 04 00 00 00 4e 69 00 00 00 00 73 2c 00 00 00 65 6c 73 65 20 72 65 6d 6f 76 65 5f 66 72 6f 6d (....Ni....s,...else.remove_from
76e0 5f 73 75 63 63 65 73 73 6f 72 73 28 29 20 70 72 75 6e 69 6e 67 20 66 6c 61 77 65 64 69 01 00 00 _successors().pruning.flawedi...
7700 00 28 05 00 00 00 52 3b 00 00 00 52 0b 00 00 00 52 22 00 00 00 74 04 00 00 00 73 6f 72 74 52 3f .(....R;...R....R"...t....sortR?
7720 00 00 00 28 04 00 00 00 52 00 00 00 00 74 0a 00 00 00 63 61 6e 64 69 64 61 74 65 73 52 01 00 00 ...(....R....t....candidatesR...
7740 00 52 36 00 00 00 28 04 00 00 00 52 39 00 00 00 52 38 00 00 00 52 1e 00 00 00 52 37 00 00 00 28 .R6...(....R9...R8...R....R7...(
7760 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 74 ....s\.../tmp/ndk-User/buildhost
7780 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 2f /install/prebuilt/darwin-x86_64/
77a0 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 6f lib/python2.7/test/test_generato
77c0 72 73 2e 70 79 74 07 00 00 00 61 64 76 61 6e 63 65 be 04 00 00 73 1e 00 00 00 00 03 06 01 14 01 rs.pyt....advance....s..........
77e0 10 01 18 01 0c 01 0f 01 04 01 17 02 0a 02 13 01 0f 01 0c 01 09 01 08 01 69 01 00 00 00 67 00 00 ........................i....g..
7800 00 00 00 00 00 40 63 03 00 00 00 09 00 00 00 05 00 00 00 33 00 00 00 73 0f 01 00 00 67 00 00 7d .....@c............3...s....g..}
7820 03 00 78 af 00 88 03 00 88 02 00 6a 00 00 19 44 5d 96 00 7d 04 00 7c 02 00 88 03 00 7c 04 00 19 ..x........j...D]..}..|.....|...
7840 83 01 00 7d 05 00 7c 05 00 64 01 00 6b 04 00 73 42 00 74 01 00 64 02 00 83 01 00 82 01 00 7c 05 ...}..|..d..k..sB.t..d........|.
7860 00 64 03 00 6b 02 00 72 64 00 7c 05 00 64 01 00 7c 04 00 66 03 00 67 01 00 7d 03 00 50 6e 00 00 .d..k..rd.|..d..|..f..g..}..Pn..
7880 88 02 00 6a 02 00 7c 04 00 83 01 00 5c 02 00 7d 06 00 7d 07 00 7c 06 00 7c 00 00 18 64 04 00 13 ...j..|.....\..}..}..|..|...d...
78a0 7c 07 00 7c 01 00 18 64 04 00 13 17 7d 08 00 7c 03 00 6a 03 00 7c 05 00 7c 08 00 0b 7c 04 00 66 |..|...d....}..|..j..|..|...|..f
78c0 03 00 83 01 00 01 71 14 00 57 7c 03 00 6a 04 00 83 00 00 01 78 50 00 7c 03 00 44 5d 48 00 5c 03 ......q..W|..j......xP.|..D]H.\.
78e0 00 7d 05 00 7d 08 00 7d 04 00 7c 04 00 88 02 00 6a 05 00 6b 03 00 72 bf 00 88 01 00 7c 04 00 83 .}..}..}..|.....j..k..r.....|...
7900 01 00 72 fa 00 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 ..r..|....._..|..V.n.....|......
7920 71 bf 00 71 bf 00 57 64 00 00 53 28 05 00 00 00 4e 69 00 00 00 00 73 2c 00 00 00 65 6c 73 65 20 q..q..Wd..S(....Ni....s,...else.
7940 72 65 6d 6f 76 65 5f 66 72 6f 6d 5f 73 75 63 63 65 73 73 6f 72 73 28 29 20 70 72 75 6e 69 6e 67 remove_from_successors().pruning
7960 20 66 6c 61 77 65 64 69 01 00 00 00 69 02 00 00 00 28 06 00 00 00 52 3b 00 00 00 52 0b 00 00 00 .flawedi....i....(....R;...R....
7980 74 0c 00 00 00 69 6e 64 65 78 32 63 6f 6f 72 64 73 52 22 00 00 00 52 42 00 00 00 52 3f 00 00 00 t....index2coordsR"...RB...R?...
79a0 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 00 52 43 00 00 (....t....vmidt....hmidR....RC..
79c0 00 52 01 00 00 00 52 36 00 00 00 74 02 00 00 00 69 31 74 02 00 00 00 6a 31 74 01 00 00 00 64 28 .R....R6...t....i1t....j1t....d(
79e0 04 00 00 00 52 39 00 00 00 52 38 00 00 00 52 1e 00 00 00 52 37 00 00 00 28 00 00 00 00 73 5c 00 ....R9...R8...R....R7...(....s\.
7a00 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
7a20 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
7a40 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 0c hon2.7/test/test_generators.pyt.
7a60 00 00 00 61 64 76 61 6e 63 65 5f 68 61 72 64 d8 04 00 00 73 22 00 00 00 00 05 06 01 14 01 10 01 ...advance_hard....s"...........
7a80 18 01 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 00 00 00 ..........................c.....
7aa0 00 00 00 03 00 00 00 33 00 00 00 73 28 00 00 00 88 00 00 6a 00 00 88 01 00 88 00 00 6a 01 00 19 .......3...s(......j........j...
7ac0 6b 06 00 73 1c 00 74 02 00 82 01 00 88 00 00 6a 00 00 56 01 64 00 00 53 28 01 00 00 00 4e 28 03 k..s..t........j..V.d..S(....N(.
7ae0 00 00 00 52 3f 00 00 00 52 3b 00 00 00 52 0b 00 00 00 28 00 00 00 00 28 02 00 00 00 52 1e 00 00 ...R?...R;...R....(....(....R...
7b00 00 52 37 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 .R7...(....s\.../tmp/ndk-User/bu
7b20 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 6e 2d ildhost/install/prebuilt/darwin-
7b40 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 5f 67 x86_64/lib/python2.7/test/test_g
7b60 65 6e 65 72 61 74 6f 72 73 2e 70 79 74 04 00 00 00 6c 61 73 74 f2 04 00 00 73 04 00 00 00 00 01 enerators.pyt....last....s......
7b80 1c 01 69 04 00 00 00 69 03 00 00 00 28 05 00 00 00 52 3d 00 00 00 52 0a 00 00 00 52 37 00 00 00 ..i....i....(....R=...R....R7...
7ba0 52 00 00 00 00 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 R....t....squaregenerators(....R
7bc0 1e 00 00 00 52 3d 00 00 00 52 0a 00 00 00 74 04 00 00 00 68 61 72 64 52 3e 00 00 00 52 41 00 00 ....R=...R....t....hardR>...RA..
7be0 00 52 44 00 00 00 52 4b 00 00 00 52 4c 00 00 00 28 00 00 00 00 28 06 00 00 00 52 39 00 00 00 52 .RD...RK...RL...(....(....R9...R
7c00 3d 00 00 00 52 0a 00 00 00 52 38 00 00 00 52 1e 00 00 00 52 37 00 00 00 73 5c 00 00 00 2f 74 6d =...R....R8...R....R7...s\.../tm
7c20 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 65 p/ndk-User/buildhost/install/pre
7c40 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 2e built/darwin-x86_64/lib/python2.
7c60 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 52 23 00 00 00 72 04 7/test/test_generators.pyR#...r.
7c80 00 00 73 1a 00 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 ..s....................1.......(
7ca0 01 63 03 00 00 00 03 00 00 00 04 00 00 00 43 00 00 00 73 59 00 00 00 64 01 00 7c 01 00 04 03 6b .c............C...sY...d..|....k
7cc0 01 00 6f 1a 00 7c 00 00 6a 00 00 6b 00 00 6e 02 00 02 01 73 25 00 74 01 00 82 01 00 64 01 00 7c ..o..|..j..k..n....s%.t.....d..|
7ce0 02 00 04 03 6b 01 00 6f 3f 00 7c 00 00 6a 02 00 6b 00 00 6e 02 00 02 01 73 4a 00 74 01 00 82 01 ....k..o?.|..j..k..n....sJ.t....
7d00 00 7c 01 00 7c 00 00 6a 02 00 14 7c 02 00 17 53 28 02 00 00 00 4e 69 00 00 00 00 28 03 00 00 00 .|..|..j...|...S(....Ni....(....
7d20 52 3d 00 00 00 52 0b 00 00 00 52 0a 00 00 00 28 03 00 00 00 52 1e 00 00 00 52 01 00 00 00 52 1b R=...R....R....(....R....R....R.
7d40 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 72 2f ...(....(....s\.../tmp/ndk-User/
7d60 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
7d80 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
7da0 5f 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 52 3a 00 00 00 fd 04 00 00 73 06 00 00 00 00 01 25 01 _generators.pyR:.......s......%.
7dc0 25 01 63 02 00 00 00 02 00 00 00 04 00 00 00 43 00 00 00 73 3c 00 00 00 64 01 00 7c 01 00 04 03 %.c............C...s<...d..|....
7de0 6b 01 00 6f 21 00 7c 00 00 6a 00 00 7c 00 00 6a 01 00 14 6b 00 00 6e 02 00 02 01 73 2c 00 74 02 k..o!.|..j..|..j...k..n....s,.t.
7e00 00 82 01 00 74 03 00 7c 01 00 7c 00 00 6a 01 00 83 02 00 53 28 02 00 00 00 4e 69 00 00 00 00 28 ....t..|..|..j.....S(....Ni....(
7e20 04 00 00 00 52 3d 00 00 00 52 0a 00 00 00 52 0b 00 00 00 74 06 00 00 00 64 69 76 6d 6f 64 28 02 ....R=...R....R....t....divmod(.
7e40 00 00 00 52 1e 00 00 00 74 05 00 00 00 69 6e 64 65 78 28 00 00 00 00 28 00 00 00 00 73 5c 00 00 ...R....t....index(....(....s\..
7e60 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 6c ./tmp/ndk-User/buildhost/install
7e80 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 68 /prebuilt/darwin-x86_64/lib/pyth
7ea0 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 52 45 00 on2.7/test/test_generators.pyRE.
7ec0 00 00 02 05 00 00 73 04 00 00 00 00 01 2c 01 63 01 00 00 00 0c 00 00 00 0b 00 00 00 43 00 00 00 ......s......,.c............C...
7ee0 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 7d s....|..j..}..|..2|..j..|..j...}
7f00 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 00 ..}..|..j..}..d..d..d..d..d..d..
7f20 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 02 d..d..g..}..t..|.....}..x..t..|.
7f40 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 5d ....D]..}..x..|..D]..}..g..|..D]
7f60 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 00 c.\..}..}..d..|..|.....k..o..|..
7f80 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 00 k..n....rz.d..|..|.....k..o..|..
7fa0 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 5e k..n....rz.|..|..|...|..|......^
7fc0 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 00 ..qz.}..|..j..|......qm.Wq`.Wd..
7fe0 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 00 S(....Ni....i....i....i....i....
8000 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 02 (....i....i....(....i....i....(.
8020 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 00 ...i....i....(....i....i....(...
8040 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 69 .i....i....(....i....i....(....i
8060 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 37 00 ....i....(....i....i....(....R7.
8080 00 00 52 3d 00 00 00 52 0a 00 00 00 52 3a 00 00 00 52 20 00 00 00 52 22 00 00 00 28 0c 00 00 00 ..R=...R....R:...R....R"...(....
80a0 52 1e 00 00 00 52 37 00 00 00 52 3d 00 00 00 52 0a 00 00 00 74 03 00 00 00 63 32 69 74 07 00 00 R....R7...R=...R....t....c2it...
80c0 00 6f 66 66 73 65 74 73 52 1d 00 00 00 52 01 00 00 00 52 1b 00 00 00 74 02 00 00 00 69 6f 74 02 .offsetsR....R....R....t....iot.
80e0 00 00 00 6a 6f 52 35 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 ...joR5...(....(....s\.../tmp/nd
8100 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 6c k-User/buildhost/install/prebuil
8120 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 65 t/darwin-x86_64/lib/python2.7/te
8140 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 5f st/test_generators.pyt...._init_
8160 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 01 board....s......................
8180 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 00 ......=.c............c...s-...|.
81a0 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 01 .j......x..t..|..j.....D]..}..|.
81c0 00 56 01 71 1a 00 57 64 00 00 53 28 01 00 00 00 4e 28 03 00 00 00 52 55 00 00 00 52 11 00 00 00 .V.q..Wd..S(....N(....RU...R....
81e0 52 4d 00 00 00 28 02 00 00 00 52 1e 00 00 00 52 02 00 00 00 28 00 00 00 00 28 00 00 00 00 73 5c RM...(....R....R....(....(....s\
8200 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 61 .../tmp/ndk-User/buildhost/insta
8220 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 79 ll/prebuilt/darwin-x86_64/lib/py
8240 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 52 thon2.7/test/test_generators.pyR
8260 25 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 00 %.......s..........c............
8280 43 00 00 00 73 22 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 7c C...s"...|..j..|..j...}..}..t..|
82a0 01 00 83 01 00 7c 02 00 7c 03 00 14 6b 02 00 73 2f 00 74 03 00 82 01 00 74 02 00 74 04 00 7c 02 .....|..|...k..s/.t.....t..t..|.
82c0 00 7c 03 00 14 83 01 00 83 01 00 7d 04 00 64 01 00 74 04 00 7c 04 00 83 01 00 17 64 02 00 17 7d .|.........}..d..t..|......d...}
82e0 05 00 67 00 00 74 05 00 7c 02 00 83 01 00 44 5d 13 00 7d 06 00 64 00 00 67 01 00 7c 03 00 14 5e ..g..t..|.....D]..}..d..g..|...^
8300 02 00 71 66 00 7d 07 00 64 03 00 7d 08 00 78 3f 00 7c 01 00 44 5d 37 00 7d 06 00 7c 00 00 6a 07 ..qf.}..d..}..x?.|..D]7.}..|..j.
8320 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 09 00 19 7c 0a .|.....\..}..}..|..|...|..|...|.
8340 00 3c 7c 08 00 64 03 00 37 7d 08 00 71 8c 00 57 64 04 00 64 05 00 7c 04 00 14 64 04 00 17 7c 03 .<|..d..7}..q..Wd..d..|...d...|.
8360 00 14 17 7d 0b 00 7c 0b 00 47 48 78 39 00 74 05 00 7c 02 00 83 01 00 44 5d 2b 00 7d 06 00 7c 07 ...}..|..GHx9.t..|.....D]+.}..|.
8380 00 7c 06 00 19 7d 0c 00 64 06 00 64 06 00 6a 08 00 7c 0c 00 83 01 00 17 64 06 00 17 47 48 7c 0b .|...}..d..d..j..|......d...GH|.
83a0 00 47 48 71 ef 00 57 64 00 00 53 28 07 00 00 00 4e 74 01 00 00 00 25 52 4a 00 00 00 69 01 00 00 .GHq..Wd..S(....Nt....%RJ...i...
83c0 00 52 26 00 00 00 74 01 00 00 00 2d 52 29 00 00 00 28 09 00 00 00 52 3d 00 00 00 52 0a 00 00 00 .R&...t....-R)...(....R=...R....
83e0 52 00 00 00 00 52 0b 00 00 00 74 03 00 00 00 73 74 72 52 20 00 00 00 52 06 00 00 00 52 45 00 00 R....R....t....strR....R....RE..
8400 00 52 2a 00 00 00 28 0d 00 00 00 52 1e 00 00 00 52 02 00 00 00 52 3d 00 00 00 52 0a 00 00 00 74 .R*...(....R....R....R=...R....t
8420 01 00 00 00 77 74 06 00 00 00 66 6f 72 6d 61 74 52 01 00 00 00 52 2c 00 00 00 74 01 00 00 00 6b ....wt....formatR....R,...t....k
8440 52 48 00 00 00 52 49 00 00 00 52 2b 00 00 00 74 03 00 00 00 72 6f 77 28 00 00 00 00 28 00 00 00 RH...RI...R+...t....row(....(...
8460 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
8480 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
84a0 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.
84c0 70 79 52 2d 00 00 00 1c 05 00 00 73 20 00 00 00 00 01 13 01 1c 01 16 01 14 02 26 01 06 01 0d 01 pyR-.......s..............&.....
84e0 15 01 12 01 0e 02 16 01 05 01 13 01 0a 01 16 01 28 08 00 00 00 52 2e 00 00 00 52 2f 00 00 00 52 ................(....R....R/...R
8500 23 00 00 00 52 3a 00 00 00 52 45 00 00 00 52 55 00 00 00 52 25 00 00 00 52 2d 00 00 00 28 00 00 #...R:...RE...RU...R%...R-...(..
8520 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 72 2f 62 ..(....(....s\.../tmp/ndk-User/b
8540 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 6e uildhost/install/prebuilt/darwin
8560 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 5f -x86_64/lib/python2.7/test/test_
8580 67 65 6e 65 72 61 74 6f 72 73 2e 70 79 52 30 00 00 00 71 04 00 00 73 0c 00 00 00 06 01 0c 8b 09 generators.pyR0...q...s.........
85a0 05 09 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 .......s`.....Generate.the.3-bit
85c0 20 62 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 .binary.numbers.in.order...This.
85e0 69 6c 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 illustrates.dumbest-.possible.us
8600 65 20 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 e.of.conjoin,.just.to.generate.t
8620 68 65 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 he.full.cross-product...>>>.for.
8640 63 20 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 c.in.conjoin([lambda:.iter((0,.1
8660 29 29 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 ))].*.3):.........print.c.[0,.0,
8680 20 30 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 .0].[0,.0,.1].[0,.1,.0].[0,.1,.1
86a0 5d 0a 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 ].[1,.0,.0].[1,.0,.1].[1,.1,.0].
86c0 5b 31 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 [1,.1,.1]..For.efficiency.in.typ
86e0 69 63 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 ical.backtracking.apps,.conjoin(
8700 29 20 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 ).yields.the.same.list.object.ea
8720 63 68 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 ch.time...So.if.you.want.to.save
8740 20 61 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 .away.a.full.account.of.its.gene
8760 72 61 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 rated.sequence,.you.need.to.copy
8780 20 69 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 .its.results...>>>.def.gencopy(i
87a0 74 65 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 terator):.........for.x.in.itera
87c0 74 6f 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 tor:.............yield.x[:]..>>>
87e0 20 66 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 .for.n.in.range(10):.........all
8800 20 3d 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 .=.list(gencopy(conjoin([lambda:
8820 20 69 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 .iter((0,.1))].*.n))).........pr
8840 69 6e 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 int.n,.len(all),.all[0].==.[0].*
8860 20 6e 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 .n,.all[-1].==.[1].*.n.0.1.True.
8880 54 72 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 True.1.2.True.True.2.4.True.True
88a0 0a 33 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 .3.8.True.True.4.16.True.True.5.
88c0 33 32 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 32.True.True.6.64.True.True.7.12
88e0 38 20 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 8.True.True.8.256.True.True.9.51
8900 32 20 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 2.True.True..And.run.an.8-queens
8920 20 73 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 .solver...>>>.q.=.Queens(8).>>>.
8940 4c 49 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 LIMIT.=.2.>>>.count.=.0.>>>.for.
8960 72 6f 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 row2col.in.q.solve():.........co
8980 75 6e 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 unt.+=.1.........if.count.<=.LIM
89a0 49 54 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 IT:.............print."Solution"
89c0 2c 20 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 ,.count.............q.printsolut
89e0 69 6f 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 ion(row2col).Solution.1.+-+-+-+-
8a00 2b 2d 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 +-+-+-+-+.|Q|.|.|.|.|.|.|.|.+-+-
8a20 2b 2d 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 +-+-+-+-+-+-+.|.|.|.|.|Q|.|.|.|.
8a40 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 20 7c 20 +-+-+-+-+-+-+-+-+.|.|.|.|.|.|.|.
8a60 7c 51 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 |Q|.+-+-+-+-+-+-+-+-+.|.|.|.|.|.
8a80 7c 51 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 |Q|.|.|.+-+-+-+-+-+-+-+-+.|.|.|Q
8aa0 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 0a 7c 20 |.|.|.|.|.|.+-+-+-+-+-+-+-+-+.|.
8ac0 7c 20 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 |.|.|.|.|.|Q|.|.+-+-+-+-+-+-+-+-
8ae0 2b 0a 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 +.|.|Q|.|.|.|.|.|.|.+-+-+-+-+-+-
8b00 2b 2d 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 +-+-+.|.|.|.|Q|.|.|.|.|.+-+-+-+-
8b20 2b 2d 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 +-+-+-+-+.Solution.2.+-+-+-+-+-+
8b40 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 2b -+-+-+.|Q|.|.|.|.|.|.|.|.+-+-+-+
8b60 2d 2b 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 -+-+-+-+-+.|.|.|.|.|.|Q|.|.|.+-+
8b80 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 7c -+-+-+-+-+-+-+.|.|.|.|.|.|.|.|Q|
8ba0 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 7c 20 7c 20 7c .+-+-+-+-+-+-+-+-+.|.|.|Q|.|.|.|
8bc0 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 20 7c 20 7c .|.|.+-+-+-+-+-+-+-+-+.|.|.|.|.|
8be0 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 7c 20 7c 20 7c .|.|Q|.|.+-+-+-+-+-+-+-+-+.|.|.|
8c00 20 7c 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 .|Q|.|.|.|.|.+-+-+-+-+-+-+-+-+.|
8c20 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 2b .|Q|.|.|.|.|.|.|.+-+-+-+-+-+-+-+
8c40 2d 2b 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 -+.|.|.|.|.|Q|.|.|.|.+-+-+-+-+-+
8c60 2d 2b 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 -+-+-+..>>>.print.count,."soluti
8c80 6f 6e 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 ons.in.all.".92.solutions.in.all
8ca0 2e 0a 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 ...And.run.a.Knight's.Tour.on.a.
8cc0 31 30 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 10x10.board...Note.that.there.ar
8ce0 65 20 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 e.about.20,000.solutions.even.on
8d00 20 61 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 .a.6x6.board,.so.don't.dare.run.
8d20 74 68 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 this.to.exhaustion...>>>.k.=.Kni
8d40 67 68 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 ghts(10,.10).>>>.LIMIT.=.2.>>>.c
8d60 6f 75 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 ount.=.0.>>>.for.x.in.k.solve():
8d80 0a 2e 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 .........count.+=.1.........if.c
8da0 6f 75 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 ount.<=.LIMIT:.............print
8dc0 20 22 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 ."Solution",.count.............k
8de0 2e 70 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 .printsolution(x).........else:.
8e00 2e 2e 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 ............break.Solution.1.+--
8e20 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 2d 2d -+---+---+---+---+---+---+---+--
8e40 2d 2b 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 -+---+.|..1|.58|.27|.34|..3|.40|
8e60 20 32 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 .29|.10|..5|..8|.+---+---+---+--
8e80 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 32 36 7c -+---+---+---+---+---+---+.|.26|
8ea0 20 33 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 .35|..2|.57|.28|.33|..4|..7|.30|
8ec0 20 31 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 .11|.+---+---+---+---+---+---+--
8ee0 2d 2b 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 -+---+---+---+.|.59|100|.73|.36|
8f00 20 34 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 .41|.56|.39|.32|..9|..6|.+---+--
8f20 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 2d 2d -+---+---+---+---+---+---+---+--
8f40 2d 2b 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 -+.|.74|.25|.60|.55|.72|.37|.42|
8f60 20 34 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 .49|.12|.31|.+---+---+---+---+--
8f80 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 36 31 7c 20 38 36 7c -+---+---+---+---+---+.|.61|.86|
8fa0 20 39 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 .99|.76|.63|.52|.47|.38|.43|.50|
8fc0 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 2d 2d .+---+---+---+---+---+---+---+--
8fe0 2d 2b 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 -+---+---+.|.24|.75|.62|.85|.54|
9000 20 37 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 .71|.64|.51|.48|.13|.+---+---+--
9020 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 0a 7c -+---+---+---+---+---+---+---+.|
9040 20 38 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 .87|.98|.91|.80|.77|.84|.53|.46|
9060 20 36 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 .65|.44|.+---+---+---+---+---+--
9080 2d 2b 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 -+---+---+---+---+.|.90|.23|.88|
90a0 20 39 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 .95|.70|.79|.68|.83|.14|.17|.+--
90c0 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 2d 2d -+---+---+---+---+---+---+---+--
90e0 2d 2b 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 -+---+.|.97|.92|.21|.78|.81|.94|
9100 20 31 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 .19|.16|.45|.66|.+---+---+---+--
9120 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 32 32 7c -+---+---+---+---+---+---+.|.22|
9140 20 38 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 .89|.96|.93|.20|.69|.82|.67|.18|
9160 20 31 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 .15|.+---+---+---+---+---+---+--
9180 2d 2b 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 -+---+---+---+.Solution.2.+---+-
91a0 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 2d --+---+---+---+---+---+---+---+-
91c0 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 39 --+.|..1|.58|.27|.34|..3|.40|.29
91e0 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 2d |.10|..5|..8|.+---+---+---+---+-
9200 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 35 --+---+---+---+---+---+.|.26|.35
9220 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 31 |..2|.57|.28|.33|..4|..7|.30|.11
9240 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 2d |.+---+---+---+---+---+---+---+-
9260 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 31 --+---+---+.|.59|100|.73|.36|.41
9280 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 2d |.56|.39|.32|..9|..6|.+---+---+-
92a0 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 0a --+---+---+---+---+---+---+---+.
92c0 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 39 |.74|.25|.60|.55|.72|.37|.42|.49
92e0 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 2d |.12|.31|.+---+---+---+---+---+-
9300 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 39 --+---+---+---+---+.|.61|.86|.99
9320 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 2d |.76|.63|.52|.47|.38|.43|.50|.+-
9340 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 2d --+---+---+---+---+---+---+---+-
9360 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 31 --+---+.|.24|.75|.62|.85|.54|.71
9380 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 2d |.64|.51|.48|.13|.+---+---+---+-
93a0 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 37 --+---+---+---+---+---+---+.|.87
93c0 7c 20 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 |.98|.89|.80|.77|.84|.53|.46|.65
93e0 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 2d |.44|.+---+---+---+---+---+---+-
9400 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 39 32 7c 20 39 35 --+---+---+---+.|.90|.23|.92|.95
9420 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 2d |.70|.79|.68|.83|.14|.17|.+---+-
9440 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 2d --+---+---+---+---+---+---+---+-
9460 2d 2d 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 --+.|.97|.88|.21|.78|.81|.94|.19
9480 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 2d |.16|.45|.66|.+---+---+---+---+-
94a0 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 39 31 --+---+---+---+---+---+.|.22|.91
94c0 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 35 |.96|.93|.20|.69|.82|.67|.18|.15
94e0 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 2d |.+---+---+---+---+---+---+---+-
9500 2d 2d 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 --+---+---+.sM...Generators.are.
9520 77 65 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 weakly.referencable:..>>>.import
9540 20 77 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 .weakref.>>>.def.gen():.........
9560 79 69 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 yield.'foo!'.....>>>.wr.=.weakre
9580 66 2e 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 f.ref(gen).>>>.wr().is.gen.True.
95a0 3e 3e 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 >>>.p.=.weakref.proxy(gen)..Gene
95c0 72 61 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 rator-iterators.are.weakly.refer
95e0 65 6e 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 encable.as.well:..>>>.gi.=.gen()
9600 0a 3e 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 .>>>.wr.=.weakref.ref(gi).>>>.wr
9620 28 29 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 ().is.gi.True.>>>.p.=.weakref.pr
9640 6f 78 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 oxy(gi).>>>.list(p).['foo!']..sV
9660 18 00 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 ...Sending.a.value.into.a.starte
9680 64 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 0a 2e 2e 2e 20 20 d.generator:..>>>.def.f():......
96a0 20 20 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 ...print.(yield.1).........yield
96c0 20 32 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 .2.>>>.g.=.f().>>>.g.next().1.>>
96e0 3e 20 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 >.g.send(42).42.2..Sending.a.val
9700 75 65 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 ue.into.a.new.generator.produces
9720 20 61 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 .a.TypeError:..>>>.f().send("foo
9740 22 29 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 ").Traceback.(most.recent.call.l
9760 61 73 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 ast):.....TypeError:.can't.send.
9780 6e 6f 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 non-None.value.to.a.just-started
97a0 20 67 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 .generator...Yield.by.itself.yie
97c0 6c 64 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 lds.None:..>>>.def.f():.yield.>>
97e0 3e 20 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 >.list(f()).[None]....An.obscene
9800 20 61 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 .abuse.of.a.yield.expression.wit
9820 68 69 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 hin.a.generator.expression:..>>>
9840 20 6c 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 .list((yield.21).for.i.in.range(
9860 34 29 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 4)).[21,.None,.21,.None,.21,.Non
9880 65 2c 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 e,.21,.None]..And.a.more.sane,.b
98a0 75 74 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 ut.still.weird.usage:..>>>.def.f
98c0 28 29 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 ():.list(i.for.i.in.[(yield.26)]
98e0 29 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 ).>>>.type(f()).<type.'generator
9900 27 3e 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 '>...A.yield.expression.with.aug
9920 6d 65 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 mented.assignment...>>>.def.coro
9940 75 74 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 utine(seq):.........count.=.0...
9960 2e 20 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 ......while.count.<.200:........
9980 20 20 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 .....count.+=.yield.............
99a0 73 65 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 seq.append(count).>>>.seq.=.[].>
99c0 3e 3e 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 >>.c.=.coroutine(seq).>>>.c.next
99e0 28 29 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 ().>>>.print.seq.[].>>>.c.send(1
9a00 30 29 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 0).>>>.print.seq.[10].>>>.c.send
9a20 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 5d 0a 3e 3e 3e 20 (10).>>>.print.seq.[10,.20].>>>.
9a40 63 2e 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 c.send(10).>>>.print.seq.[10,.20
9a60 2c 20 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 ,.30]...Check.some.syntax.errors
9a80 20 66 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 .for.yield.expressions:..>>>.f=l
9aa0 61 6d 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 ambda:.(yield.1),(yield.2).Trace
9ac0 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):...
9ae0 2e 2e 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 ......File."<doctest.test.test_g
9b00 65 6e 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 enerators.__test__.coroutine[21]
9b20 3e 22 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 >",.line.1.SyntaxError:.'yield'.
9b40 6f 75 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 outside.function..>>>.def.f():.r
9b60 65 74 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 eturn.lambda.x=(yield):.1.Traceb
9b80 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 2e ack.(most.recent.call.last):....
9ba0 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 77 69 74 68 20 61 72 ...SyntaxError:.'return'.with.ar
9bc0 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 3c 64 6f 63 74 65 73 gument.inside.generator.(<doctes
9be0 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 74 65 73 74 5f 5f 2e t.test.test_generators.__test__.
9c00 63 6f 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 coroutine[22]>,.line.1)..>>>.def
9c20 20 66 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 .f():.x.=.yield.=.y.Traceback.(m
9c40 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 20 46 ost.recent.call.last):.........F
9c60 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 74 6f ile."<doctest.test.test_generato
9c80 72 73 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 rs.__test__.coroutine[23]>",.lin
9ca0 65 20 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 e.1.SyntaxError:.assignment.to.y
9cc0 69 65 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 ield.expression.not.possible..>>
9ce0 3e 20 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 >.def.f():.(yield.bar).=.y.Trace
9d00 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):...
9d20 2e 2e 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 ......File."<doctest.test.test_g
9d40 65 6e 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 enerators.__test__.coroutine[24]
9d60 3e 22 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 >",.line.1.SyntaxError:.can't.as
9d80 73 69 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 sign.to.yield.expression..>>>.de
9da0 66 20 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 f.f():.(yield.bar).+=.y.Tracebac
9dc0 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):......
9de0 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 65 ...File."<doctest.test.test_gene
9e00 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 35 5d 3e 22 2c rators.__test__.coroutine[25]>",
9e20 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 67 .line.1.SyntaxError:.can't.assig
9e40 6e 20 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 n.to.yield.expression...Now.chec
9e60 6b 20 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 k.some.throw().conditions:..>>>.
9e80 64 65 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 def.f():.........while.True:....
9ea0 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 20 70 72 .........try:.................pr
9ec0 69 6e 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 int.(yield).............except.V
9ee0 61 6c 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 alueError,v:.................pri
9f00 6e 74 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 nt."caught.ValueError.(%s)".%.(v
9f20 29 2c 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 ),.>>>.import.sys.>>>.g.=.f().>>
9f40 3e 20 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 >.g.next()..>>>.g.throw(ValueErr
9f60 6f 72 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 or).#.type.only.caught.ValueErro
9f80 72 20 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 r.()..>>>.g.throw(ValueError("xy
9fa0 7a 22 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 z"))..#.value.only.caught.ValueE
9fc0 72 72 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 rror.(xyz)..>>>.g.throw(ValueErr
9fe0 6f 72 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 or,.ValueError(1))...#.value+mat
a000 63 68 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 ching.type.caught.ValueError.(1)
a020 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 20 54 79 70 65 45 72 ..>>>.g.throw(ValueError,.TypeEr
a040 72 6f 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 ror(1))..#.mismatched.type,.rewr
a060 61 70 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 apped.caught.ValueError.(1)..>>>
a080 20 67 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 .g.throw(ValueError,.ValueError(
a0a0 31 29 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 1),.None)...#.explicit.None.trac
a0c0 65 62 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 eback.caught.ValueError.(1)..>>>
a0e0 20 67 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 .g.throw(ValueError(1),."foo")..
a100 20 20 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 .....#.bad.args.Traceback.(most.
a120 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
a140 6f 72 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 or:.instance.exception.may.not.h
a160 61 76 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 ave.a.separate.value..>>>.g.thro
a180 77 28 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 w(ValueError,."foo",.23)......#.
a1a0 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 63 65 6e 74 20 bad.args.Traceback.(most.recent.
a1c0 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 74 68 72 call.last):.......TypeError:.thr
a1e0 6f 77 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 ow().third.argument.must.be.a.tr
a200 61 63 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 aceback.object..>>>.def.throw(g,
a220 65 78 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 exc):.........try:.............r
a240 61 69 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 aise.exc.........except:........
a260 20 20 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 .....g.throw(*sys.exc_info()).>>
a280 3e 20 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 >.throw(g,ValueError).#.do.it.wi
a2a0 74 68 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 th.traceback.included.caught.Val
a2c0 75 65 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 ueError.()..>>>.g.send(1).1..>>>
a2e0 20 74 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 .throw(g,TypeError)..#.terminate
a300 20 74 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 .the.generator.Traceback.(most.r
a320 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 6f ecent.call.last):.......TypeErro
a340 72 0a 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 r..>>>.print.g.gi_frame.None..>>
a360 3e 20 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 >.g.send(2).Traceback.(most.rece
a380 6e 74 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 nt.call.last):.......StopIterati
a3a0 6f 6e 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 on..>>>.g.throw(ValueError,6)...
a3c0 20 20 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 ....#.throw.on.closed.generator.
a3e0 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
a400 29 3a 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 ):.......ValueError:.6..>>>.f().
a420 74 68 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 throw(ValueError,7).....#.throw.
a440 6f 6e 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 on.just-opened.generator.Traceba
a460 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):.....
a480 2e 0a 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 ..ValueError:.7..>>>.f().throw("
a4a0 61 62 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 abc").....#.throw.on.just-opened
a4c0 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 65 6e .generator.Traceback.(most.recen
a4e0 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 3a 20 65 t.call.last):.......TypeError:.e
a500 78 63 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 xceptions.must.be.classes,.or.in
a520 73 74 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 stances,.not.str..Now.let's.try.
a540 63 6c 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 closing.a.generator:..>>>.def.f(
a560 29 3a 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 ):.........try:.yield.........ex
a580 63 65 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 cept.GeneratorExit:.............
a5a0 70 72 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 print."exiting"..>>>.g.=.f().>>>
a5c0 20 67 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 .g.next().>>>.g.close().exiting.
a5e0 3e 3e 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 >>>.g.close()..#.should.be.no-op
a600 20 6e 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 .now..>>>.f().close()..#.close.o
a620 6e 20 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 n.just-opened.generator.should.b
a640 65 20 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 e.fine..>>>.def.f():.yield......
a660 23 20 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 #.an.even.simpler.generator.>>>.
a680 66 28 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 f().close().........#.close.befo
a6a0 72 65 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 re.opening.>>>.g.=.f().>>>.g.nex
a6c0 74 28 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 t().>>>.g.close()...........#.cl
a6e0 6f 73 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 ose.normally..And.finalization:.
a700 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 64 .>>>.def.f():.........try:.yield
a720 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 70 72 .........finally:.............pr
a740 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
a760 2e 6e 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 .next().>>>.del.g.exiting..>>>.c
a780 6c 61 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 lass.context(object):........def
a7a0 20 5f 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 .__enter__(self):.pass........de
a7c0 66 20 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 f.__exit__(self,.*args):.print.'
a7e0 65 78 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 exiting'.>>>.def.f():.........wi
a800 74 68 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 th.context():..............yield
a820 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 3e 3e 3e 20 64 65 .>>>.g.=.f().>>>.g.next().>>>.de
a840 6c 20 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 l.g.exiting...GeneratorExit.is.n
a860 6f 74 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 ot.caught.by.except.Exception:..
a880 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 64 0a >>>.def.f():.........try:.yield.
a8a0 2e 2e 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 ........except.Exception:.print.
a8c0 27 65 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 'except'.........finally:.print.
a8e0 27 66 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 'finally'..>>>.g.=.f().>>>.g.nex
a900 74 28 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 t().>>>.del.g.finally...Now.let'
a920 73 20 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 s.try.some.ill-behaved.generator
a940 73 3a 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 s:..>>>.def.f():.........try:.yi
a960 65 6c 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 eld.........except.GeneratorExit
a980 3a 0a 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 :.............yield."foo!".>>>.g
a9a0 20 3d 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 .=.f().>>>.g.next().>>>.g.close(
a9c0 29 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 ).Traceback.(most.recent.call.la
a9e0 73 74 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 st):.......RuntimeError:.generat
aa00 6f 72 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 or.ignored.GeneratorExit.>>>.g.c
aa20 6c 6f 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 lose()...Our.ill-behaved.code.sh
aa40 6f 75 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 ould.be.invoked.during.GC:..>>>.
aa60 69 6d 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 import.sys,.StringIO.>>>.old,.sy
aa80 73 2e 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 s.stderr.=.sys.stderr,.StringIO.
aaa0 53 74 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 StringIO().>>>.g.=.f().>>>.g.nex
aac0 74 28 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 t().>>>.del.g.>>>.sys.stderr.get
aae0 76 61 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 value().startswith(........."Exc
ab00 65 70 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 eption.RuntimeError:.'generator.
ab20 69 67 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 ignored.GeneratorExit'.in.".....
ab40 29 0a 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 ).True.>>>.sys.stderr.=.old...An
ab60 64 20 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 d.errors.thrown.during.closing.s
ab80 68 6f 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 hould.propagate:..>>>.def.f():..
aba0 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 70 74 .......try:.yield.........except
abc0 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 72 61 69 73 .GeneratorExit:.............rais
abe0 65 20 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 e.TypeError("fie!").>>>.g.=.f().
ac00 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 54 72 61 63 65 >>>.g.next().>>>.g.close().Trace
ac20 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):...
ac40 2e 2e 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 ....TypeError:.fie!...Ensure.tha
ac60 74 20 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 t.various.yield.expression.const
ac80 72 75 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 ructs.make.their.enclosing.funct
aca0 69 6f 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 ion.a.generator:..>>>.def.f():.x
acc0 20 2b 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 .+=.yield.>>>.type(f()).<type.'g
ace0 65 6e 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 enerator'>..>>>.def.f():.x.=.yie
ad00 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 65 72 61 74 6f ld.>>>.type(f()).<type.'generato
ad20 72 27 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 r'>..>>>.def.f():.lambda.x=(yiel
ad40 64 29 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 d):.1.>>>.type(f()).<type.'gener
ad60 61 74 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 ator'>..>>>.def.f():.x=(i.for.i.
ad80 69 6e 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 in.(yield).if.(yield)).>>>.type(
ada0 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 3e 3e 3e 20 64 65 66 f()).<type.'generator'>..>>>.def
adc0 20 66 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 .f(d):.d[(yield."a")].=.d[(yield
ade0 20 22 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 ."b")].=.27.>>>.data.=.[1,2].>>>
ae00 20 67 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 .g.=.f(data).>>>.type(g).<type.'
ae20 67 65 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 generator'>.>>>.g.send(None).'a'
ae40 0a 3e 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 .>>>.data.[1,.2].>>>.g.send(0).'
ae60 62 27 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 b'.>>>.data.[27,.2].>>>.try:.g.s
ae80 65 6e 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 end(1).....except.StopIteration:
aea0 20 70 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 .pass.>>>.data.[27,.27]..sS....P
aec0 72 69 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 rior.to.adding.cycle-GC.support.
aee0 74 6f 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 to.itertools.tee,.this.code.woul
af00 64 20 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 d.leak.references..We.add.it.to.
af20 74 68 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 the.standard.suite.so.the.routin
af40 65 20 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 e.refleak-tests.would.trigger.if
af60 20 69 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 .it.starts.being.uncleanable.aga
af80 69 6e 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 in...>>>.import.itertools.>>>.de
afa0 66 20 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 f.leak():.........class.gen:....
afc0 20 20 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 .........def.__iter__(self):....
afe0 20 20 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 .............return.self........
b000 20 20 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 .....def.next(self):............
b020 20 20 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 .....return.self.item.........g.
b040 3d 20 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 =.gen().........head,.tail.=.ite
b060 72 74 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 rtools.tee(g).........g.item.=.h
b080 65 61 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 ead.........return.head.>>>.it.=
b0a0 20 6c 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 .leak()..Make.sure.to.also.test.
b0c0 74 68 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 the.involvement.of.the.tee-inter
b0e0 6e 61 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 nal.teedataobject,.which.stores.
b100 72 65 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 returned.items...>>>.item.=.it.n
b120 65 78 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 ext()....This.test.leaked.at.one
b140 20 70 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 .point.due.to.generator.finaliza
b160 74 69 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 tion/destruction..It.was.copied.
b180 66 72 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 from.Lib/test/leakers/test_gener
b1a0 61 74 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 ator_cycle.py.before.the.file.wa
b1c0 73 20 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 s.removed...>>>.def.leak():.....
b1e0 20 20 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 ...def.gen():............while.T
b200 72 75 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 rue:................yield.g.....
b220 20 20 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 ...g.=.gen()..>>>.leak()....This
b240 20 74 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 .test.isn't.really.generator.rel
b260 61 74 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 ated,.but.rather.exception-in-cl
b280 65 61 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 eanup.related..The.coroutine.tes
b2a0 74 73 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 ts.(above).just.happen.to.cause.
b2c0 61 6e 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 an.exception.in.the.generator's.
b2e0 5f 5f 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 __del__.(tp_del).method..We.can.
b300 61 6c 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 also.test.for.this.explicitly,.w
b320 69 74 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 ithout.generators..We.do.have.to
b340 20 72 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 .redirect.stderr.to.avoid.printi
b360 6e 67 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 ng.warnings.and.to.doublecheck.t
b380 68 61 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 hat.we.actually.tested.what.we.w
b3a0 61 6e 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 anted.to.test...>>>.import.sys,.
b3c0 53 74 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 StringIO.>>>.old.=.sys.stderr.>>
b3e0 3e 20 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 >.try:.........sys.stderr.=.Stri
b400 6e 67 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 ngIO.StringIO().........class.Le
b420 61 6b 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 aker:.............def.__del__(se
b440 6c 66 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 lf):.................raise.Runti
b460 6d 65 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 meError.............l.=.Leaker()
b480 0a 2e 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 .........del.l.........err.=.sys
b4a0 2e 73 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 .stderr.getvalue().strip()......
b4c0 20 20 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 ...err.startswith(............."
b4e0 45 78 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 Exception.RuntimeError:.RuntimeE
b500 72 72 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 rror().in.<".........).........e
b520 72 72 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 rr.endswith(">.ignored")........
b540 20 6c 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 .len(err.splitlines()).....final
b560 6c 79 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 ly:.........sys.stderr.=.old.Tru
b580 65 0a 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 e.True.1....These.refleak.tests.
b5a0 73 68 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 should.perhaps.be.in.a.testfile.
b5c0 6f 66 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 of.their.own,.test_generators.ju
b5e0 73 74 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 st.happened.to.be.the.test.that.
b600 64 72 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 drew.these.out...t....tutt....pe
b620 70 74 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 11 pt....emailt....funt....syntaxR.
b640 00 00 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 ...t....weakreft....coroutinet..
b660 00 00 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 ..refleaksc............C...s*...
b680 64 01 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 d..d..l..m..}..m..}...|..j..|..|
b6a0 00 00 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 ......d..S(....Ni....(....t....t
b6c0 65 73 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 est_supportt....test_generators(
b6e0 04 00 00 00 74 04 00 00 00 74 65 73 74 52 65 00 00 00 52 66 00 00 00 74 0b 00 00 00 72 75 6e 5f ....t....testRe...Rf...t....run_
b700 64 6f 63 74 65 73 74 28 03 00 00 00 74 07 00 00 00 76 65 72 62 6f 73 65 52 65 00 00 00 52 66 00 doctest(....t....verboseRe...Rf.
b720 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 72 2f 62 ..(....(....s\.../tmp/ndk-User/b
b740 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 6e uildhost/install/prebuilt/darwin
b760 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 5f -x86_64/lib/python2.7/test/test_
b780 67 65 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 generators.pyt....test_mainm...s
b7a0 04 00 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 ........t....__main__i....N(....
b7c0 74 0e 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 t....tutorial_testst....pep_test
b7e0 73 74 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 st....email_testst....fun_testst
b800 0c 00 00 00 73 79 6e 74 61 78 5f 74 65 73 74 73 52 07 00 00 00 52 11 00 00 00 52 17 00 00 00 52 ....syntax_testsR....R....R....R
b820 18 00 00 00 52 30 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 ....R0...t....conjoin_testst....
b840 77 65 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 weakref_testst....coroutine_test
b860 73 74 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 st....refleaks_testst....__test_
b880 5f 52 06 00 00 00 52 6a 00 00 00 52 2e 00 00 00 28 00 00 00 00 28 00 00 00 00 28 00 00 00 00 73 _R....Rj...R....(....(....(....s
b8a0 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
b8c0 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
b8e0 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
b900 74 08 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 t....<module>....s6.............
b920 09 15 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 ...=.$.7...Q.....9.K............
b940 07 01 07 01 07 01 0a 07 0c 05 0c 01 ............