--- id: cons version: "0.4.7" license: unclear license_treatment: unclear maintenance: active --- # cons — An implementation of Lisp/Scheme-like cons in Python. License: unclear · Maintenance: active · Downloads: 1.3M/mo ## What it is and what it does The cons package brings Lisp and Scheme's classic cons-cell operations into Python, letting you build and decompose sequences using car (head), cdr (tail), and cons (prepend) functions. It works across Python's standard sequence types—lists, tuples, iterators, and OrderedDicts—while treating None as the empty list, following Scheme conventions. The package also integrates with the logical-unification library, enabling pattern matching and unification on cons structures. It's designed for developers working with functional programming patterns or symbolic computation in Python. The implementation respects Python's sequence semantics while staying true to Lisp/Scheme behavior; for example, calling car or cdr on an empty sequence raises ConsError rather than returning nil. You can customize which types participate in cons operations by registering them with the MaybeCons and NonCons abstract base classes. Use it for: - Build functional data structures using cons pairs in symbolic or logic programming applications. - Perform pattern matching and unification on Python sequences using the unification integration. - Implement recursive list algorithms that rely on car/cdr decomposition in a Lisp-like style. - Work with OrderedDicts and other sequence types using uniform cons semantics. - Prototype or port Scheme/Lisp algorithms to Python while preserving their list-manipulation idioms. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Implements Lisp/Scheme-style cons operations (cons, car, cdr) for Python sequences, enabling functional list manipulation across lists, tuples, iterators, and OrderedDicts. Yes, if you need Lisp/Scheme-style cons operations for functional programming or symbolic computation. Install friction is minimal and maintenance is active. However, verify the license terms first—the license status is unclear and must be confirmed before use in proprietary or copyleft-sensitive contexts. ## Install pip install cons uv add cons poetry add cons ## Installing cons Before you install: Low install friction with a single pure-Python dependency (logical-unification). Actively maintained with recent commits and a stable release cycle; marked Alpha but supports current Python versions (3.9+). License in practice: License status is unclear—no SPDX identifier or raw license text is available. Verify the actual license terms before using in proprietary or copyleft-sensitive projects. Quickstart: pip install cons from cons import cons, car, cdr result = cons(1, [2, 3]) print(result) # [1, 2, 3] print(car(result)) # 1 print(cdr(result)) # [2, 3] Requires Python 3.9 or later. Verify before relying: - Whether the unclear license permits use in closed-source or commercial projects. - Performance characteristics when working with very large sequences or deeply nested cons operations. ## Package facts - License: not declared (unclear) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 1.3M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags lisp cons car cdr python, functional list operations, scheme-like cons pairs, python sequence cons, functional programming sequences, cons list manipulation, lisp-style list operations, functional-programming, symbolic-computation, lisp-scheme [View on SkillFed](https://skillfed.io/packages/cons) · [View on PyPI](https://pypi.org/project/cons/)