Basic tail call removal decorator
Project description
# tcopy
_Do not use this._
A direct tail call optimizing decorator for Python.
## Examples:
```python
from tcopy import tco
@tco
def fib(n, x=0, y=1):
if n == 0:
return x
return fib(n - 1, y, x + y)
```
The `tco` decorator will rewrite `fib` into the following at
definition time:
```python
def fib(n, x=0, y=1):
while 1:
if n == 0:
return x
n, x, y = n - 1, y, x + y
```
## Quirks
`tco` uses `inspect.getsource` to grab a function's source code from
disk. Because of this, the decorator does not work in the Python REPL.
_Do not use this._
A direct tail call optimizing decorator for Python.
## Examples:
```python
from tcopy import tco
@tco
def fib(n, x=0, y=1):
if n == 0:
return x
return fib(n - 1, y, x + y)
```
The `tco` decorator will rewrite `fib` into the following at
definition time:
```python
def fib(n, x=0, y=1):
while 1:
if n == 0:
return x
n, x, y = n - 1, y, x + y
```
## Quirks
`tco` uses `inspect.getsource` to grab a function's source code from
disk. Because of this, the decorator does not work in the Python REPL.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tcopy-0.1.2.tar.gz
(2.8 kB
view hashes)
Built Distribution
Close
Hashes for tcopy-0.1.2.macosx-10.10-intel.exe
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bf9dc043e393f0be28ae944abd0cd5a11c0d24e52f0aac13ce2c54fb901780c |
|
MD5 | b1a41d509c4225fc4ea9e1cc2eea1a10 |
|
BLAKE2b-256 | 47e7ffbc7e8c378d5f9012d5b953b253847bed80d61ecdef5bec56f19332199a |