{"id":27219797,"url":"https://github.com/gotz1480/lambda-go","last_synced_at":"2025-04-10T06:05:21.729Z","repository":{"id":248350259,"uuid":"824019917","full_name":"gotz1480/lambda-go","owner":"gotz1480","description":"A simple Go library based on functional programming (inspired by Haskell)","archived":false,"fork":false,"pushed_at":"2024-07-31T18:30:07.000Z","size":21,"stargazers_count":27,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T13:13:20.145Z","etag":null,"topics":["functional-go","functional-go-template","go-functional","go-functional-programming","go-lib","go-library","golang-functional-programming","golang-lib","golang-library"],"latest_commit_sha":null,"homepage":"","language":"Go","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/gotz1480.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":"2024-07-04T07:53:36.000Z","updated_at":"2024-12-10T12:47:20.000Z","dependencies_parsed_at":"2024-07-16T19:17:19.041Z","dependency_job_id":"48878fe4-42f9-4d01-9682-aa5d7071626f","html_url":"https://github.com/gotz1480/lambda-go","commit_stats":null,"previous_names":["araujo88/lambda-go","gotz1480/lambda-go"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotz1480%2Flambda-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotz1480%2Flambda-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotz1480%2Flambda-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gotz1480%2Flambda-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gotz1480","download_url":"https://codeload.github.com/gotz1480/lambda-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248166937,"owners_count":21058481,"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":["functional-go","functional-go-template","go-functional","go-functional-programming","go-lib","go-library","golang-functional-programming","golang-lib","golang-library"],"created_at":"2025-04-10T06:04:04.717Z","updated_at":"2025-04-10T06:05:21.713Z","avatar_url":"https://github.com/gotz1480.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lambda-Go\n\n[![license](https://img.shields.io/badge/license-MIT-green)](https://raw.githubusercontent.com/araujo88/lambda-go/main/LICENSE)\n[![build](https://github.com/araujo88/lambda-go//actions/workflows/go.yml/badge.svg?branch=main)](https://github.com/araujo88/lambda-go/actions/workflows/go.yml)\n\n## Overview\n\nLambda-Go is a library designed to extend Go's capabilities with functional programming techniques inspired by Haskell. It aims to provide Go developers with tools to write cleaner, more expressive code while leveraging Go's strong typing and efficiency.\n\n## Features\n\n- **Core Functional Constructs**: Implements fundamental functional programming operations like `map`, `foldl`, `foldr`, and more.\n- **Tuples Support**: Generic tuple data structure for handling paired data.\n- **Utilities**: A collection of utilities such as `reverse`, `concat`, and `unique` to manipulate slices.\n- **Predicate Functions**: Includes functions like `filter`, `any`, `all`, and `find` to work with predicates effectively.\n- **Sorting and Grouping**: Functions for sorting slices and grouping elements based on specified criteria.\n\n## Getting Started\n\n### Prerequisites\n\n- Go 1.18 or higher (requires support for generics)\n\n### Installing\n\nTo use Lambda-Go in your project, start by cloning the repository:\n\n```bash\ngit clone https://github.com/araujo88/lambda-go.git\n```\n\nThen, import the required subpackages in your Go application:\n\n```go\nimport (\n    \"github.com/araujo88/lambda-go/pkg/core\"\n    \"github.com/araujo88/lambda-go/pkg/utils\"\n)\n```\n\n### Usage Examples\n\nHere are some simple examples to get you started:\n\n**Using `Map` to double the values in a slice:**\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"github.com/araujo88/lambda-go/pkg/core\"\n)\n\nfunc main() {\n    slice := []int{1, 2, 3, 4, 5}\n    doubled := core.Map(slice, func(x int) int { return x * 2 })\n    fmt.Println(doubled)\n}\n```\n\n**Filtering a slice of integers:**\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"github.com/araujo88/lambda-go/pkg/predicate\"\n)\n\nfunc main() {\n    slice := []int{1, 2, 3, 4, 5}\n    filtered := predicate.Filter(slice, func(x int) bool { return x \u003e 3 })\n    fmt.Println(filtered)\n}\n```\n\n## Contributing\n\nWe welcome contributions! If you have suggestions or want to improve the library, feel free to make a pull request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotz1480%2Flambda-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgotz1480%2Flambda-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgotz1480%2Flambda-go/lists"}