{"id":16619010,"url":"https://github.com/gyzerok/calculus","last_synced_at":"2025-10-24T01:45:57.335Z","repository":{"id":146302804,"uuid":"57036299","full_name":"gyzerok/calculus","owner":"gyzerok","description":"http://calculus-app.herokuapp.com/","archived":false,"fork":false,"pushed_at":"2016-04-26T12:09:36.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-15T14:12:05.481Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/gyzerok.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":"2016-04-25T11:26:27.000Z","updated_at":"2016-04-25T18:10:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"e4b279d2-369e-4778-a11d-d484de460135","html_url":"https://github.com/gyzerok/calculus","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/gyzerok%2Fcalculus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gyzerok%2Fcalculus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gyzerok%2Fcalculus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gyzerok%2Fcalculus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gyzerok","download_url":"https://codeload.github.com/gyzerok/calculus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242980782,"owners_count":20216285,"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-12T02:22:28.365Z","updated_at":"2025-10-24T01:45:52.297Z","avatar_url":"https://github.com/gyzerok.png","language":"JavaScript","readme":"# Calculus\n\n![Build status](https://circleci.com/gh/gyzerok/calculus.svg?style=shield\u0026circle-token=056dee4183ec830a949fbf0899e9053ae5e4572b)\n\nHere is a world changing service for simple math expressions evaluation.\n\n## Try it!\n\nYou can easily make some calculations in the [web version](http://calculus-app.herokuapp.com/)\n\n## Additional thoughts\n\nSince pure functional style algorithms implementation is always hard I've done this in some mix of procedural and functional approach.\n\nAll the `Calculator` API are pure functions for better testability while inside they are done in imperative manner. The good idea would be to try to reimplement this stuff in Elm. Why not JavaScript? I guess this algorithm functional implementation would use pattern matching hardly. While you can achieve the same stuff pattern matching is doing with simple `if` statements, code would become as unreadable as in imperative version.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgyzerok%2Fcalculus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgyzerok%2Fcalculus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgyzerok%2Fcalculus/lists"}