{"id":20635825,"url":"https://github.com/orsinium-labs/python-lambda-calculus","last_synced_at":"2025-08-02T15:33:29.165Z","repository":{"id":46191193,"uuid":"189574028","full_name":"orsinium-labs/python-lambda-calculus","owner":"orsinium-labs","description":"Lambda Calculus things implemented on Python","archived":false,"fork":false,"pushed_at":"2019-09-05T10:28:32.000Z","size":42,"stargazers_count":87,"open_issues_count":0,"forks_count":9,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-15T11:47:03.084Z","etag":null,"topics":["combinator","functional-programming","lambda","lambda-calculus","python","ycombinator"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/orsinium-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-31T10:14:42.000Z","updated_at":"2025-05-11T15:36:29.000Z","dependencies_parsed_at":"2022-07-19T03:47:03.678Z","dependency_job_id":null,"html_url":"https://github.com/orsinium-labs/python-lambda-calculus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/orsinium-labs/python-lambda-calculus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orsinium-labs%2Fpython-lambda-calculus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orsinium-labs%2Fpython-lambda-calculus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orsinium-labs%2Fpython-lambda-calculus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orsinium-labs%2Fpython-lambda-calculus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orsinium-labs","download_url":"https://codeload.github.com/orsinium-labs/python-lambda-calculus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orsinium-labs%2Fpython-lambda-calculus/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268411109,"owners_count":24246168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["combinator","functional-programming","lambda","lambda-calculus","python","ycombinator"],"created_at":"2024-11-16T15:07:39.547Z","updated_at":"2025-08-02T15:33:29.102Z","avatar_url":"https://github.com/orsinium-labs.png","language":"Python","readme":"\u003ch1 align=\"center\"\u003eλ\u003c/h1\u003e\n\n## Lambda Calculus functions implemented on Python\n\n[Lambda Calculus](https://en.wikipedia.org/wiki/Lambda_calculus) is a kind of mathematical game when you're implementing programming language with only functions that accept exactly one argument and returns exactly one value. Such function named \"lambda\". Thing is lambda can return another lambda, and it allows you to build everything, even [numbers](https://en.wikipedia.org/wiki/Church_encoding).\n\nThis repository contains [lambdas](./lambdas/) with implemented lambdas and [tests](./tests/) with pytest-based tests for it. To run tests execute `pytest`.\n\nImplemented:\n\n1. Boolean operations: [code](./lambdas/_bool.py), [tests](./tests/test_bool.py).\n1. Natural numbers: [code](./lambdas/_natural.py), [tests](./tests/test_natural.py).\n1. Pair: [code](./lambdas/_pair.py), [tests](./tests/test_pair.py).\n1. Combinators: [code](./lambdas/_bool.py), [tests](./tests/test_bool.py).\n1. Recursive functions: [code](./lambdas/_recursive.py), [tests](./tests/test_recursive.py).\n1. Signed numbers: [code](./lambdas/_signed.py), [tests](./tests/test_signed.py).\n1. Lists: [code](./lambdas/_list.py), [tests](./tests/test_list.py).\n\nThe list below is in order of the recommend implementation. It's recommend to try to do it by yourself, and use this repository as a cheatsheet.\n\n## Read more\n\n* [Lambda Calculus on Wikipedia](https://en.wikipedia.org/wiki/Lambda_calculus)\n* [Church Encoding on Wikipedia](https://en.wikipedia.org/wiki/Church_encoding)\n* [Lambda Calculus David Beazley's screencast](https://youtu.be/5C6sv7-eTKg)\n* [JS implementation of some lambdas](https://github.com/gtramontina/lambda)\n* Computerphile videos:\n    * [Lambda Calculus](https://youtu.be/eis11j_iGMs)\n    * [What is a Monad?](https://youtu.be/t1e8gqXLbsU)\n    * [Functional Programming's Y Combinator](https://youtu.be/9T8A89jgeTI)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forsinium-labs%2Fpython-lambda-calculus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forsinium-labs%2Fpython-lambda-calculus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forsinium-labs%2Fpython-lambda-calculus/lists"}