{"id":16433289,"url":"https://github.com/tarsisexistence/fuzion","last_synced_at":"2025-04-10T13:21:41.619Z","repository":{"id":37932881,"uuid":"384692129","full_name":"tarsisexistence/fuzion","owner":"tarsisexistence","description":"shortcut fu⚡️ion for TypeScript","archived":false,"fork":false,"pushed_at":"2025-03-31T19:22:41.000Z","size":355,"stargazers_count":3,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T20:28:30.876Z","etag":null,"topics":["fp","functional-programming","javascript","shortcut-fusion","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/tarsisexistence.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-10T12:25:01.000Z","updated_at":"2024-11-10T20:12:33.000Z","dependencies_parsed_at":"2023-11-27T20:20:24.155Z","dependency_job_id":"8022b812-cf94-4717-bd2c-a1f62b3f6f96","html_url":"https://github.com/tarsisexistence/fuzion","commit_stats":null,"previous_names":["tarsisexistence/fuzion"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarsisexistence%2Ffuzion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarsisexistence%2Ffuzion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarsisexistence%2Ffuzion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarsisexistence%2Ffuzion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tarsisexistence","download_url":"https://codeload.github.com/tarsisexistence/fuzion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248225661,"owners_count":21068078,"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":["fp","functional-programming","javascript","shortcut-fusion","typescript"],"created_at":"2024-10-11T08:45:40.718Z","updated_at":"2025-04-10T13:21:41.589Z","avatar_url":"https://github.com/tarsisexistence.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fuzion\n\nRuntime implementation of shortcut fusion for JavaScript and TypeScript.\n\n\u003cbr/\u003e\n\n#### Definition ([haskell docs](https://wiki.haskell.org/Short_cut_fusion))\nShortcut fusion is an optimizer method that merges some function calls into one. E.g., `map f * map g` can be substituted by `map (f * g)`, and `filter p * filter q` can be substituted by `filter (\\x -\u003e q x \u0026\u0026 p x)`. It can also help to remove intermediate data structures. E.g., computing `sum [1..n]` does not require an explicit list structure, and the expression is actually translated into a simple loop.\n\n\u003cbr/\u003e\n\n#### API\n\nSo far, it supports the following operators:\n\n- \u003cstrong\u003efuzion\u003c/strong\u003e - performs left-to-right function composition. In some libraries this function is named `pipe`, `sequence`.\n- \u003cstrong\u003emap\u003c/strong\u003e - applies another function to a list of elements and returns a new result on every element in the calling array.\n- \u003cstrong\u003efilter\u003c/strong\u003e - invokes a provided predicate function for each array element and includes it into the result.\n- \u003cstrong\u003eforEach\u003c/strong\u003e - executes a provided function once for each array element.\n- \u003cstrong\u003etake\u003c/strong\u003e - cuts the length of the produced result. It helps to save operators calls to other operators on array elements that will not be included in the final result.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarsisexistence%2Ffuzion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftarsisexistence%2Ffuzion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarsisexistence%2Ffuzion/lists"}