{"id":19200247,"url":"https://github.com/darklang/tablecloth-fsharp","last_synced_at":"2025-05-09T02:18:23.219Z","repository":{"id":97726295,"uuid":"550565476","full_name":"darklang/tablecloth-fsharp","owner":"darklang","description":"F# implementation of tablecloth","archived":false,"fork":false,"pushed_at":"2022-10-21T16:58:00.000Z","size":4998,"stargazers_count":5,"open_issues_count":5,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-09T02:18:18.613Z","etag":null,"topics":["fsharp","standard-library"],"latest_commit_sha":null,"homepage":"https://www.tablecloth.dev","language":"F#","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/darklang.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2022-10-13T01:20:37.000Z","updated_at":"2024-03-12T20:27:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"ff201c5d-341c-48d2-b9e1-0afb60245784","html_url":"https://github.com/darklang/tablecloth-fsharp","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/darklang%2Ftablecloth-fsharp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darklang%2Ftablecloth-fsharp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darklang%2Ftablecloth-fsharp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darklang%2Ftablecloth-fsharp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darklang","download_url":"https://codeload.github.com/darklang/tablecloth-fsharp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253176443,"owners_count":21866143,"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":["fsharp","standard-library"],"created_at":"2024-11-09T12:31:32.249Z","updated_at":"2025-05-09T02:18:23.203Z","avatar_url":"https://github.com/darklang.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tablecloth\n\n[![CircleCI](https://circleci.com/gh/darklang/tablecloth-fsharp.svg?style=shield)](https://circleci.com/gh/darklang/tablecloth-fsharp)\n\nTablecloth is a library that shims over various standard libraries so they have the same function and module names, which using idiomatic types and patterns in each language.\n\nThis is the F# version, which uses FSharp.Core, pipe-last, and camelCase.\n\nNote that F# support is newer and therefor less mature than other Tablecloth librares.\n\n**Tablecloth is alpha-quality software, and is pre-1.0. Caveat emptor.**\n\nCheck out the [website](https://www.tablecloth.dev) for our interactive API\ndocumentation, or join the community in the [Tablecloth\nDiscord](https://www.tablecloth.dev/discord-invite).\n\n## Installation\n\n**Note: these instructions are for the upcoming new version of tablecloth**\n\nAdd `Tablecloth.FSharp` via paket or nuget.\n\n## Usage\n\nThe recommended way to use Tablecloth is with a top-level open at the beginning of a file.\n\nThis will ensure that all the built-in modules are replaced.\n\n```\nopen Tablecloth\n\nlet () =\n  String.toList \"somestring\"\n  |\u003e List.map Char.toCode\n  |\u003e List.map (fun x -\u003e x+1)\n  |\u003e List.filterMap Char.fromCode\n  |\u003e String.fromList\n```\n\n## Supported versions\n\nTablecloth currently supports .NET 5.0 and later, and FSharp 6 and later.\n\n## Design goals of Tablecloth\n\nWhen switching between functional languages, it can be frustrating to try to\nremember the names of different functions, which are not standardized and differ\ndue to history.\n\nAt the same time, we recognize that each language has their own idioms, and\noften have mature and optimized standard libraries that we do not wish to replace.\nAs such, each version of tablecloth is simple a set of functions which call existing\nstandard libraries, and uses idiomatic patterns for the language in question.\n\nTablecloth was originally written to help port the Darklang frontend from Elm to\nReasonML. As we used OCaml on the backend, we tried to reuse some libraries by adding\nOCaml versions of the ReasonML functions. However, code reuse was difficult and never\ntook off, and we ended up splitting the two libraries when the ReasonML community\nmoved to Rescript, which did not have the goal to be compatible with OCaml. When we\nported the backend from OCaml to F#, we added an F# version.\n\n## Contributions\n\nThe maintainers are warm and friendly, and the project abides by a [Code of Conduct](./CODE_OF_CONDUCT.md).\n\nThere are many small tasks to be done - a small change to a single function can be extremely\nhelpful. We also welcome new versions of tablecloth for other languages, or even for the same\nlanguage but based on other libraries.\n\nCheck out the [dedicated guide](./documentation/contributing.md) on contributing for more.\n\n## Developing\n\nPlease refer to the `Makefile` for a complete list of supported actions. Here is\na handful of useful, supported commands:\n\n- `make deps`: Install dependencies and tools\n- `make build`: Build the project\n- `make watch`: Run a build watcher\n- `make test`: Run the test suite\n- `make check-format`: Check your code is formatted correctly.\n- `make format`: Format code\n- `make package`: Build a nuget package\n- `make clean`: Delete all build output\n\n## License\n\nTablecloth uses the [MIT](./LICENSE) license.\n\n## Authors\n\nInitially written by [Darklang](https://darklang.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarklang%2Ftablecloth-fsharp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarklang%2Ftablecloth-fsharp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarklang%2Ftablecloth-fsharp/lists"}