{"id":13746842,"url":"https://github.com/luohaha/lambda-calculus","last_synced_at":"2026-02-07T07:33:41.893Z","repository":{"id":90140868,"uuid":"66572481","full_name":"luohaha/lambda-calculus","owner":"luohaha","description":"lambda calculus interpreter","archived":false,"fork":false,"pushed_at":"2016-09-01T13:56:32.000Z","size":30,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-04T07:48:30.413Z","etag":null,"topics":["lambda","lambda-calculus","scheme"],"latest_commit_sha":null,"homepage":null,"language":"Scheme","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luohaha.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-08-25T15:55:53.000Z","updated_at":"2023-03-10T06:10:17.000Z","dependencies_parsed_at":"2024-01-15T00:56:24.955Z","dependency_job_id":null,"html_url":"https://github.com/luohaha/lambda-calculus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/luohaha/lambda-calculus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luohaha%2Flambda-calculus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luohaha%2Flambda-calculus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luohaha%2Flambda-calculus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luohaha%2Flambda-calculus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luohaha","download_url":"https://codeload.github.com/luohaha/lambda-calculus/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luohaha%2Flambda-calculus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29189355,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-07T05:07:31.176Z","status":"ssl_error","status_checked_at":"2026-02-07T05:06:15.227Z","response_time":63,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["lambda","lambda-calculus","scheme"],"created_at":"2024-08-03T06:01:02.753Z","updated_at":"2026-02-07T07:33:41.861Z","avatar_url":"https://github.com/luohaha.png","language":"Scheme","readme":"# lambda-calculus\n\nThis is a lambda calculus interpreter.\n\n## Usage\n\n```\ncd lambda/\n./run [filename]\n```\n\u003e Need chezscheme\n\n## Grammar\n\n```\n\u003cexpression\u003e ::= \u003cid\u003e\n\u003cexpression\u003e ::= (lambda \u003cid\u003e \u003cexpression\u003e)\n\u003cexpression\u003e ::= (\u003cexpression\u003e \u003cexpression\u003e)\n```\n## 概念介绍\n\n更多关于lambda演算的解释在[这里](https://zh.wikipedia.org/wiki/Λ演算)可以看到。\n\n## 辅助函数\n\n```scheme\n(Tag \u003cid\u003e \u003cexpression\u003e)\n```\n\u003e id为expression的缩写。\n\n```scheme\n(display \u003cexpression\u003e)\n```\n\u003e 打印规约之后的结果。\n\n```scheme\n(display-integer \u003cexpression\u003e)\n```\n\u003e 打印规约之后结果的整数值。\n\n```scheme\n(display-boolean \u003cexpression\u003e)\n```\n\u003e 打印规约之后结果的布尔值。\n\n## 例子\n\n```scheme\n;;Y combination\n(Tag Y (lambda f ((lambda x (f (x x))) (lambda x (f (x x))))))\n;;integer\n(Tag 0 (lambda p (lambda x x)))\n(Tag 1 (lambda p (lambda x (p x))))\n(Tag 2 (lambda p (lambda x (p (p x)))))\n(Tag 3 (lambda p (lambda x (p (p (p x))))))\n\n;;boolean\n(Tag true (lambda x (lambda y x)))\n(Tag false (lambda x (lambda y y)))\n\n;;condition\n(Tag if (lambda x x))\n(Tag zero? (lambda x ((x (lambda y false)) true)))\n\n;;data structure\n(Tag cons (lambda x (lambda y (lambda f ((f x) y)))))\n(Tag car (lambda f (f (lambda x (lambda y x)))))\n(Tag cdr (lambda f (f (lambda x (lambda y y)))))\n\n;;operator\n(Tag increment (lambda n (lambda p (lambda x (p ((n p) x))))))\n(Tag decrement (lambda n (lambda f (lambda x (((n (lambda g (lambda h (h (g f))))) (lambda u x)) (lambda u u))))))\n(Tag + (lambda m (lambda n (lambda f (lambda x ((m f) ((n f) x)))))))\n(Tag - (lambda m (lambda n ((n decrement) m))))\n(Tag * (lambda m (lambda n (lambda f (m (n f))))))\n(Tag pow (lambda m (lambda n ((n (* m)) 1))))\n(Tag \u003e= (lambda m (lambda n (zero? ((- n) m)))))\n(Tag \u003c= (lambda m (lambda n (zero? ((- m) n)))))\n(Tag and (lambda m (lambda n ((m n) false))))\n(Tag or (lambda m (lambda n ((m true) n))))\n(Tag not (lambda m ((m false) true)))\n\n(Tag mod (lambda f (lambda m (lambda n (((if ((\u003c= n) m))\n\t\t\t\t\t ((f ((- m) n)) n))\n\t\t\t\t\tm)))))\n(Tag add-list (lambda f (lambda n (((if (zero? n)) 0) ((+ (f (decrement n))) n)))))\n\n;;求规约之后的结果\n(display ((pow 3) (cdr ((cons 2) 3))))\n;; =\u003e (lambda f (lambda x4 (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f (f x4)))))))))))))))))))))))))))))\n\n;;求规约之后的结果，转化为integer\n(display-integer ((add-list (Y add-list)) (increment 3)))\n;; =\u003e 10\n\n;;求规约后的结果\n(display (((mod (Y mod)) (increment (increment 3))) 3))\n;; =\u003e (lambda f1793 (lambda x1894 (f1793 (f1793 x1894))))\n\n;;求规约之后的结果，转化为boolean\n(display-boolean (((if ((and true) true)) ((or false) false)) true))\n;; =\u003e #f\n```","funding_links":[],"categories":["Scheme"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluohaha%2Flambda-calculus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluohaha%2Flambda-calculus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluohaha%2Flambda-calculus/lists"}