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 details)
Built Distribution
File details
Details for the file tcopy-0.1.2.tar.gz
.
File metadata
- Download URL: tcopy-0.1.2.tar.gz
- Upload date:
- Size: 2.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8401bdbd19d3d27266191a007087c610eb3539f2d025bdf9a1ed5167133ba930 |
|
MD5 | a58fd1799016b61a32a0528c9e97db5e |
|
BLAKE2b-256 | 29d2852a474f5605a5263380b9176d44692508ac9f0b12ed4b9df0064a1a2b11 |
File details
Details for the file tcopy-0.1.2.macosx-10.10-intel.exe
.
File metadata
- Download URL: tcopy-0.1.2.macosx-10.10-intel.exe
- Upload date:
- Size: 65.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4bf9dc043e393f0be28ae944abd0cd5a11c0d24e52f0aac13ce2c54fb901780c |
|
MD5 | b1a41d509c4225fc4ea9e1cc2eea1a10 |
|
BLAKE2b-256 | 47e7ffbc7e8c378d5f9012d5b953b253847bed80d61ecdef5bec56f19332199a |