Skip to main content

tailrec

Provides a decorator tailrec which executes a tail recursive function iteratively

Installation

pip install tailrec

Examples

from tailrec import tailrec


@tailrec
def factorial(n: int, accum: int = 1) -> int:
    """Calculates n!"""
    if n == 0:
        return accum
    else:
        return factorial(n - 1, accum * n)


@tailrec
def fibonacci(n: int, current: int = 0, next_: int = 1) -> int:
    """Returns the n-th number of the fibonacci sequence"""
    if n == 0:
        return current
    else:
        return fibonacci(n - 1, next_, current + next_)


print(factorial(5))  # 120
print(factorial(1_100))  # 5343708488092637703...

print(fibonacci(5))  # 8
print(fibonacci(2_000))  # 42246963333923...

Metadata

Release files for tailrec 0.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tailrec 0.1.6
File Size Uploaded
tailrec-0.1.6.tar.gz 3.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tailrec 0.1.6
File Interpreter ABI Platform
tailrec-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 8.0 kB

Release files / tailrec-0.1.6.tar.gz

Download URL tailrec-0.1.6.tar.gz
Size 3.0 kB
Tags Source
SHA-256 checksum
How to use checksums
9405770a13c110c4832a488a13267741b353afef3c1e7b1f3c279099e0eba7e2
BLAKE2b-256 checksum
How to use checksums
e07e8709c06869be11f08d5d81b5a74eb6c4386a520f1d20935fe44c7782f718
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.11.3 Windows/10

Release files / tailrec-0.1.6-py3-none-any.whl

Download URL tailrec-0.1.6-py3-none-any.whl
Size 5.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f51c36117c72b75f6062233860d340ca9382a09a6ff22b4abef4625f2b0821d2
BLAKE2b-256 checksum
How to use checksums
895679d89e68a91f10876b143076ed4457a56547c83ebab39ee0e6fe84356cd3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.1 CPython/3.11.3 Windows/10

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page