{"id":18057399,"url":"https://github.com/1computer1/ewe","last_synced_at":"2025-04-05T10:22:51.720Z","repository":{"id":110792989,"uuid":"188656060","full_name":"1Computer1/ewe","owner":"1Computer1","description":"Lambda calculus interpreter and REPL","archived":false,"fork":false,"pushed_at":"2019-11-16T07:07:15.000Z","size":51,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-17T21:14:15.214Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"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/1Computer1.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-26T08:04:22.000Z","updated_at":"2019-11-16T07:07:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"da8320a0-a2ab-426a-aea9-69dff428ff74","html_url":"https://github.com/1Computer1/ewe","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/1Computer1%2Fewe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1Computer1%2Fewe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1Computer1%2Fewe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/1Computer1%2Fewe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/1Computer1","download_url":"https://codeload.github.com/1Computer1/ewe/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247320249,"owners_count":20919743,"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-10-31T02:07:35.863Z","updated_at":"2025-04-05T10:22:51.696Z","avatar_url":"https://github.com/1Computer1.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ewe\n\nAn interpreter and REPL for the lambda calculus.  \nTo install, run `stack install`.  \nRun `ewe --help` for more info.  \n\n## Untyped\n\nNormal order evaluation, no static types, only lambdas.  \nUse with `--language untyped` or `-lu`.  \nMade with lots of help from [here](https://crypto.stanford.edu/~blynn/lambda/).  \n\n```\nProgram     = Definition* EOF\nDefinition  = Identifier \"=\" Expression \";\"\nExpression  = Lambda | Application\nLambda      = \"\\\" Identifier+ \".\" Expression\nApplication = Value+\nValue       = Identifier | \"(\" Expression \")\"\nIdentifier  = (AlphaNum | \"_\")+\n```\n\nLine comments are done with `--`, block comments with `{- -}`.  \n\nSee [here](./examples/untyped-church.ewe) for an example of Church encoding.  \n\n## Simple\n\nBased on the simply typed lambda calculus.  \nEager evaluation, statically typed, not very useful.  \nContains integers, strings, and booleans, and some operations on them.  \nUse with `--language simple` or `-ls`.  \n\n```\nProgram       = Definition* EOF\nDefinition    = Identifier \"=\" Expression \";\"\nExpression    = Lambda | Application | Branch\nLambda        = \"\\\" (\"(\" Identifier \":\" Type \")\")+ \".\" Expression\nApplication   = Atom+\nBranch        = \"if\" Expression \"then\" Expression \"else\" Expression\nAtom          = Identifier | Integer | String | Bool | \"(\" Expression \")\"\nInteger       = [0-9]+\nString        = '\"' ('\\\"' | .)* '\"'\nBool          = \"true\" | \"false\"\nIdentifier    = [a-z][A-Za-z0-9_]*\nType          = TypeAtom (\"-\u003e\" TypeAtom)*\nTypeAtom      = TypeIdentifier | \"(\" Type \")\"\nTypeIdentifer = [A-Z][A-Za-z0-9_]*\n```\n\nLine comments are done with `--`, block comments with `{- -}`.  \n\nSee [here](./examples/simple-example.ewe) for an example.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1computer1%2Fewe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F1computer1%2Fewe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F1computer1%2Fewe/lists"}