source:
doc/papers/concurrency/examples/FibRefactor.py@
30ee3155
| Last change on this file since 30ee3155 was a573c22, checked in by , 6 years ago | |
|---|---|
|
|
| File size: 484 bytes | |
| Line | |
|---|---|
| 1 | def Fib(): |
| 2 | def Refactor(): |
| 3 | nonlocal fn, fn1 |
| 4 | fn = 0; fn1 = fn |
| 5 | yield fn # suspend |
| 6 | |
| 7 | def Refactor2(): |
| 8 | nonlocal fn, fn1, fn2 |
| 9 | fn = 1; fn2 = fn1; fn1 = fn |
| 10 | yield fn # suspend |
| 11 | |
| 12 | yield from Refactor() |
| 13 | yield from Refactor2() |
| 14 | while True: |
| 15 | fn = fn1 + fn2; fn2 = fn1; fn1 = fn; yield fn |
| 16 | |
| 17 | f1 = Fib() |
| 18 | f2 = Fib() |
| 19 | for i in range( 10 ): |
| 20 | print( next( f1 ), next( f2 ) ) # resume |
| 21 | |
| 22 | # Local Variables: # |
| 23 | # tab-width: 4 # |
| 24 | # compile-command: "python3.7 FibRefactor.py" # |
| 25 | # End: # |
Note:
See TracBrowser
for help on using the repository browser.