91 Repos
Utilities and abstractions for functional programming patterns.
Explore 91 awesome GitHub repositories matching part of an awesome list · Functional Programming. Refine with filters or upvote what's useful.
Dieses Projekt ist ein von der Community gepflegtes Verzeichnis, das als umfassender Index für Software-Tools, Frameworks und Lehrmaterialien dient. Es fungiert als Open-Source-Wissensdatenbank, die verschiedene technische Bereiche und Ressourcen in einer strukturierten Taxonomie organisiert, um Entwickler bei der Suche nach qualitativ hochwertigen Inhalten zu unterstützen. Das Verzeichnis zeichnet sich durch ein dezentrales Peer-Review-Modell aus, bei dem unabhängige Mitwirkende Einträge kuratieren, verifizieren und aktualisieren, um Genauigkeit und Relevanz sicherzustellen. Alle Informationen werden in einem versionskontrollierten Flat-File-Markdown-Format gespeichert, was Plattformunabhängigkeit, Transparenz und Auditierbarkeit für die gesamte Sammlung gewährleistet. Das Projekt deckt ein breites Spektrum an Fähigkeiten ab, von der Entdeckung technischer Ressourcen über die berufliche Weiterentwicklung bis hin zum Wissensmanagement in der Softwareentwicklung. Es bietet Zugang zu strukturierten Lernpfaden, Infrastruktur- und Sicherheitstools, Datenmanagement-Dienstprogrammen sowie spezialisierten Ressourcen für Bereiche von der Gesundheitsversorgung bis zu den digitalen Geisteswissenschaften. Das Repository wird als öffentliche, versionskontrollierte Sammlung gepflegt, was einen programmatischen Zugriff und Community-gesteuerte Updates der strukturierten Daten ermöglicht.
Deep dives into functional programming techniques and architectural benefits.
Lodash is a JavaScript utility library and data manipulation toolkit. It provides a collection of modular functions for transforming, filtering, and validating arrays, objects, strings, and numbers. The project functions as a functional programming toolkit, offering capabilities for function composition, currying, and lazy evaluation. It includes mechanisms for execution control, such as debouncing and throttling, to manage the timing and frequency of function invocations. The library covers a broad surface of data operations, including deep cloning and merging of complex nested structures,
High-performance utility library.
This is a persistent data structure library for JavaScript that provides collections which prevent the direct mutation of objects and arrays. It serves as an immutable state management tool and functional programming utility, ensuring that data remains unchanged after creation to simplify change detection and state tracking. The library enables the maintenance of application state by producing new versions of data structures during updates. It focuses on efficient data comparison by checking actual content instead of memory references and supports a functional programming workflow to prevent
Immutable data collections.
Immutable.js is a library of persistent data structures and a functional state management toolkit. It provides a collection of immutable objects and arrays that prevent direct mutation to ensure predictable state management in JavaScript applications. The library utilizes structural sharing to efficiently create new versions of data without full copying and implements lazy sequence processing to chain data transformations that execute only when values are requested. It also supports batch mutation processing, allowing multiple changes to be applied to a temporary mutable copy before returning
Library for creating and managing immutable data structures.
RxJS is a library for reactive programming that provides a framework for composing asynchronous and event-based programs. It utilizes observable sequences to model data flows, allowing developers to manage complex sequences of events through a declarative programming interface. The library implements the observer pattern to facilitate decoupled communication between data producers and subscribers. By employing a lazy execution model, streams remain dormant until a consumer explicitly subscribes, at which point data production is triggered. This approach enables the construction of predictable
Functional reactive library for data streams.
Immer is an immutable state management library used to create new versions of data structures. It allows the production of new state by mutating a temporary draft instead of using manual object spreading. The project implements structural sharing to reuse unchanged parts of a data tree between versions, which reduces memory consumption. It also functions as a JSON patch generator to calculate and output the differences between two state versions. To ensure data integrity, the library includes a state mutation protector that freezes data structures to detect and prevent accidental modificatio
Functional state management with immutability.
Underscore is a JavaScript utility library providing a suite of functional programming and data manipulation helpers. It serves as a framework for transforming data collections, composing functions, managing objects, and performing precise data type validation without modifying core language prototypes. The project includes a functional programming toolkit designed to control function execution timing and behavior through techniques such as debouncing, throttling, and partial application. It also provides a dedicated object manipulation utility for cloning, merging, picking, and omitting prop
General-purpose utility library.
Ramda is a functional JavaScript standard library and toolset for immutable data transformation and composition. It provides a comprehensive suite of pure utility functions designed to enable declarative data processing pipelines. The library is distinguished by its use of automatic function currying and a data-last argument order. These design patterns allow multi-argument functions to be partially applied, simplifying the construction of processing chains where data is passed through a sequence of operations. The toolkit covers broad data manipulation capabilities, including list processin
Functional utility library focused on composition.
Reason is a strongly typed functional language and multi-target compiler designed to produce either JavaScript for web environments or native machine code for operating systems. It serves as an OCaml-compatible language that shares an abstract syntax tree with OCaml, providing a practical syntax for the OCaml ecosystem. The project functions as a type-safe frontend language, incorporating JSX support to build user interfaces through structural elements that translate into type-safe function calls. It enables deep integration with the JavaScript ecosystem, allowing the use of existing librarie
Implements a full functional programming paradigm featuring immutability, pattern matching, and higher-order functions.
ReactiveUI is a .NET MVVM framework and functional reactive programming library designed to decouple application state from the user interface. It functions as a reactive state management tool that uses observable streams to handle mutable data and asynchronous event-driven logic. The framework provides a cross-platform UI toolkit that abstracts business logic from platform-specific views. This enables the creation of consistent user interfaces across multiple .NET platforms by utilizing platform-agnostic abstractions. The system focuses on application state management and decoupled UI testi
MVVM framework integrated with reactive extensions.
Rx.NET is a reactive programming framework and library for the .NET ecosystem used to compose asynchronous and event-based programs. It provides an observable data stream API that treats live sequences of information as collections, allowing developers to coordinate asynchronous event workflows using a declarative syntax. The project functions as an extension of language integrated query patterns to asynchronous streams. This allows for the filtering and transformation of asynchronous notifications and event sequences through the application of query operators. The framework covers asynchron
Core reactive extensions library for asynchronous programming.
language-ext is a functional programming framework for C# that provides a suite of immutable data structures and monadic types. It enables the implementation of pure functional programming patterns, utilizing containers to manage side effects, optional values, and error handling. The library is distinguished by its advanced concurrency and state management tools, including a software transactional memory system and lock-free atomic references. It also provides specialized utilities for distributed systems, such as vector clocks for causality tracking and deterministic data conflict resolution
Functional language extensions and concurrency primitives.
1loc is a JavaScript utility library and multifaceted toolkit providing a collection of single-line functions for common mathematical, string, date, and geometric operations. It functions as a set of functional programming helpers and data validation predicates designed to perform atomic transformations and validations. The project includes a geometry math library for calculating distances, angles, and spatial overlaps between points and rectangles, alongside a text manipulation library for casting, capitalizing, and analyzing string content. The toolkit covers broader capability areas inclu
Provides a set of small pure functions for atomic data transformations and functional validations.
Bacon.js is a JavaScript functional reactive programming library used for coordinating complex asynchronous data flows. It functions as an observable event stream framework and an asynchronous data flow orchestrator, allowing developers to model events as declarative streams and properties. The library distinguishes itself through its ability to manage reactive state and synchronize timing across multiple sources. It provides specialized mechanisms for atomic state synchronization to prevent glitches in derived properties and offers advanced coordination strategies such as asynchronous stream
Functional reactive programming library.
Functional library to reduce boilerplate and increase robustness.
Lazy.js is a JavaScript library that implements a lazy evaluation model for processing collections and data streams. It defers all computation until iteration begins, building chains of transformations that execute only when values are consumed, avoiding intermediate arrays and buffering. The library wraps data sources into a uniform sequence interface, enabling operations like map and filter to be chained together without materializing intermediate results. The library extends lazy processing beyond simple collections to handle asynchronous data sources, DOM events, strings, and Node.js stre
High-performance utility library.
Toolz is a Python library that implements functional programming utilities for iterable transformation, dictionary manipulation, function composition, and lazy evaluation. It provides a set of pure functions designed to work with Python's built-in data structures, enabling concise and composable data processing workflows. What distinguishes toolz is its support for curried partial application, allowing functions to be incrementally applied and reused. It includes dictionary-centric operations that handle nested structures, and offers iterable chain transformers that combine mapping, filtering
Offers a collection of functional utilities for data processing.
Sugar ist eine JavaScript-Utility-Bibliothek, die darauf ausgelegt ist, native Objekte und Prototypen um zusätzliche Methoden zur Datenmanipulation und -transformation zu erweitern. Sie fungiert als Toolkit für Objekt-Utilities, Datumsmanipulation, String-Inflektion und das Polyfilling fehlender oder fehlerhafter Standard-Sprachfunktionen. Die Bibliothek bietet die Möglichkeit, Utility-Methoden direkt auf eingebaute Prototypen zu mappen oder Werte in temporäre Objekte zu wrappen, um Method-Chaining zu ermöglichen, ohne globale Prototypen zu modifizieren. Sie enthält zudem ein Polyfill-System, um konsistentes Verhalten über verschiedene Ausführungsumgebungen hinweg sicherzustellen, indem fehlende moderne Sprachfunktionen implementiert werden. Die Funktionen umfassen internationale Datumsformatierung und das Parsen von humanisierten Datums-Strings. Die Bibliothek handhabt zudem natürliche Sprachverarbeitung durch String-Inflektion und Normalisierung, tiefe Eigenschaftstraversierung verschachtelter Objekte und locale-bewusste Array-Sortierung. Zusätzlich bietet sie Tools zum Klonen veränderbarer Objekte und zur Definition von Wertebereichen für Zahlen, Daten und Strings.
Native object extension library.
Coconut is a functional programming language that compiles to Python. It functions as a source-to-source compiler, translating high-level functional syntax into compatible Python code to maintain runtime compatibility. The language introduces a logic system for pattern matching and destructuring complex data structures. It provides a mechanism for tail call optimization to prevent stack overflow errors during deep recursive function calls and employs a lazy evaluation engine to defer computations until results are explicitly required. The project includes support for algebraic data types, pi
Adds functional programming features to Python syntax.
Returns ist eine Bibliothek für funktionale Programmierung für Python, die typsichere Container zur Verwaltung von Zustand, Fehlerbehandlung und Optionalität bereitstellt. Sie dient als monadische Container-Bibliothek und typsicheres Fehlerbehandlungs-Framework, das traditionelle Try-Catch-Blöcke und Null-Checks durch Result- und Optional-Container ersetzt, um Ausnahmen als Daten zu behandeln. Das Projekt zeichnet sich durch die Verwendung eines spezialisierten Mypy-Plugins zur statischen Analyse aus, um funktionale Pipelines zu validieren und Higher-Kinded-Types zu emulieren. Es bietet Mechanismen zur Isolierung von Seiteneffekten durch IO-Container und bietet ein Framework für typsichere Dependency-Injection, das die Bereitstellung von Abhängigkeiten bis zur finalen Ausführung einer Berechnung aufschiebt. Die Bibliothek deckt ein breites Spektrum funktionaler Primitive ab, einschließlich Currying, partieller Anwendung und der Komposition deklarativer Datenpipelines. Sie unterstützt asynchrones Workflow-Management durch das Einwickeln von Coroutines in Container, um nicht-blockierende Operationen zu verketten, und enthält Utilities für das Ressourcen-Lebenszyklusmanagement sowie die Verifizierung algebraischer Gesetze für benutzerdefinierte Container.
Implements type-safe monads and functional composition.