{"id":13782737,"url":"https://github.com/tbonelaforge/lambda","last_synced_at":"2026-03-17T23:27:58.064Z","repository":{"id":3622042,"uuid":"4687885","full_name":"tbonelaforge/lambda","owner":"tbonelaforge","description":"An interpreter for a programming language based on the Lambda Calculus.","archived":false,"fork":false,"pushed_at":"2017-03-02T18:08:29.000Z","size":105,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-24T15:34:14.269Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tbonelaforge.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-06-16T21:55:08.000Z","updated_at":"2023-10-14T23:39:12.000Z","dependencies_parsed_at":"2022-09-10T22:50:21.378Z","dependency_job_id":null,"html_url":"https://github.com/tbonelaforge/lambda","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbonelaforge%2Flambda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbonelaforge%2Flambda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbonelaforge%2Flambda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbonelaforge%2Flambda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tbonelaforge","download_url":"https://codeload.github.com/tbonelaforge/lambda/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":213838087,"owners_count":15645776,"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","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":[],"created_at":"2024-08-03T18:01:43.101Z","updated_at":"2026-03-17T23:27:58.020Z","avatar_url":"https://github.com/tbonelaforge.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"Getting Started:\n\n1. git clone git@github.com:tbonelaforge/lambda.git\n2. cd lambda\n3. make\n4. ./lambda ./examples/my_first_namespace.lc \u003e output.html\n5. Open output.html in a web browser.\n\nTyping \"make\" in the top-level directory produces the **lambda** interpreter, which is an executable file. The interpreter was built for educational purposes, and produces a detailed representation of the program, before and after evaluation.\nIf the lambda executable is given a filename as command-line argument, e.g.\n\n    lambda ./examples/my_first_namespace.lc\n\nit will parse the specified file, \nand execute the resulting program.  \nThis process will produce **HTML** output which, when viewed in a web browser, \nshows a graphical representation of the operator trees before evaluation of the program,\nand the final operator trees after evaluation is all finished.\n\nPrograms written in the language resemble something like the following:\n\n    two:((plus,one),one);\n    one:\\f\\x(f,x);\n    plus:\\m\\n\\f\\x((m,f),((n,f),x));\n\nEach semicolon-terminated line of input establishes an entry in a namespace ( symbol table ). For example, after parsing the first line above, \nthe operator tree for \"((plus,one),one)\" will be \nstored in the namespace under the name \"two\".\n\nThe backslashes in the second and third lines each mark a bound variable in a lambda (function) definition.\nThe parentheses show the application of one expression to another.\nFor example, the expression:\n\n    \\f\\x(f,x)\n\nDefines a function which takes two arguments ( 'f' and 'x', in that order ), \nand applies the first argument to the second.\n\nThe program defined in **my_first_namespace.lc** defines the [Church Numeral](https://en.wikipedia.org/wiki/Church_encoding) for the number 1, \nand a function to add two church numerals together. \nThen, it calculates the church numeral for the number 2 by adding 1 + 1.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftbonelaforge%2Flambda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftbonelaforge%2Flambda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftbonelaforge%2Flambda/lists"}