{"id":19527257,"url":"https://github.com/lighghteeloo/lala-lang","last_synced_at":"2025-06-19T09:40:38.320Z","repository":{"id":47604085,"uuid":"390157236","full_name":"LighghtEeloo/lala-lang","owner":"LighghtEeloo","description":"[WIP] An expression based data notation, aimed at transpiling itself to any cascaded data notation.","archived":false,"fork":false,"pushed_at":"2022-06-09T00:11:20.000Z","size":210,"stargazers_count":39,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-16T12:56:05.289Z","etag":null,"topics":["lala","language","notation","s-expression"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/LighghtEeloo.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":"2021-07-27T23:39:59.000Z","updated_at":"2025-05-15T12:59:54.000Z","dependencies_parsed_at":"2022-09-06T08:41:12.082Z","dependency_job_id":null,"html_url":"https://github.com/LighghtEeloo/lala-lang","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LighghtEeloo/lala-lang","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LighghtEeloo%2Flala-lang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LighghtEeloo%2Flala-lang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LighghtEeloo%2Flala-lang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LighghtEeloo%2Flala-lang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LighghtEeloo","download_url":"https://codeload.github.com/LighghtEeloo/lala-lang/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LighghtEeloo%2Flala-lang/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260726504,"owners_count":23053168,"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":["lala","language","notation","s-expression"],"created_at":"2024-11-11T01:14:20.232Z","updated_at":"2025-06-19T09:40:33.303Z","avatar_url":"https://github.com/LighghtEeloo.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lala\nAn expression oriented data notation, aimed at transpiling itself to any cascaded data notation.\n\nLala is separated into three components: `Nana`, `Lala`, and `Dada`.\n\n\n\u003c!-- ## Quick Examples --\u003e\n\n\u003c!-- ### Direct Tranpilation\n\nSome examples will be provided here as an introduction to lala.\n\n- lala4html\n- lala4css\n- lala4json\n- lala4toml\n- lala4yaml --\u003e\n\n\u003c!-- ### Functional Programming in Lala\n\n```lala\n/* `~` means definition, like `let` or `var` */\n~ qsort xs := (\n    /* pattern matching */\n    ? xs\n    | [] -\u003e []\n    | [x] + xs -\u003e (\n        ~ (s, l) = list.partition ((\u003e) x) xs;\n        (qsort s) + [x] + (qsort l)\n    )\n);\nqsort [1,3,4,2,5]\n```\n\n### Object-Oriented Programming in Lala\n\n```lala\n/* definition of a \"class\", `student` */\n~ student \u003cname; sleep; ability; gpa\u003e := [\n    ~ name := name;\n    ~ study := (\n        ?? sleep \n        | name + \" doesn't want to study.\" \n        | name + \" is diligent!\"\n    );\n    ~ exam difficulty := (\n        ~ base = (\n            ?? gpa \u003e= 4.0\n            | ability\n            | (\n                ?? sleep\n                | ability - difficulty\n                | ability - 2 * difficulty\n            )\n        );\n        ?? base \u003e 0\n        | base\n        | 0\n    );\n];\n\n/* application, creating two instances */\n~ alice := student [\n    ~ name := \"Alice\";\n    ~ sleep := 0;\n    ~ ability := 100;\n    ~ gpa := 4.3;\n];\n~ bob := student [\n    ~ name := \"Bob\";\n    ~ sleep := 1;\n    ~ ability := 90;\n    ~ gpa := 3.7;\n];\n\n/* get value; of course it could be better abstracted */\n{\n    alice.name: {\n        \"study_status\": alice.study,\n        \"exam_result\": alice.exam 20,\n    },\n    bob.name: {\n        \"study_status\": bob.study,\n        \"exam_result\": bob.exam 20,\n    }\n}\n```\n\nthe result is\n```json\n{\n    \"alice\": {\n        \"study_status\": \"Alice doesn't want to study.\",\n        \"exam_result\": 100\n    },\n    \"bob\": {\n        \"study_status\": \"Bob is diligent!\",\n        \"exam_result\": 70\n    }\n}\n``` --\u003e\n\n\n## First Glance\n\n[Nana CheatSheet](nana/CheatSheet.md)\n\n\n## Language Proposals\n- Nana: [nana-lang proposal](nana/Proposal.md).\n- Lala: [lala-lang proposal](lala/Proposal.md).\n- Dada: tbd.\n\n\n## Roadmap\n\n### Nana\n\nNana, a proof-of-concept language, will first be implemented, along with the following key concepts:\n\n1. Block\n    - Obstruction\n    - Projection\n    - Exposure\n2. Value Space\n    - Literal\n    - Application\n3. Binder Space\n    - Abstraction\n    - Pattern Language\n4. Control Flow \n    - Pattern Matching\n\n### Lala\n\nNana++. \n\n1. the order of computation embedded in data structure\n2. type system\n3. a standard library\n\n### Dada\n\nA (fake) package manager in pure lala, designed more as a structural convention than a heavy building system.\n\n\n## Current Progress\nUsing [lalrpop](https://github.com/lalrpop/lalrpop) as nana/lala's parser to Rust.\n\nCurrently dealing with symbol resolution.\n\nAlso here is a [todo list](Todo.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flighghteeloo%2Flala-lang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flighghteeloo%2Flala-lang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flighghteeloo%2Flala-lang/lists"}