91 repository-uri
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.
Acest proiect este un director întreținut de comunitate care servește drept index cuprinzător de instrumente software, framework-uri și materiale educaționale. Funcționează ca o bază de cunoștințe open-source, organizând diverse domenii de inginerie și resurse tehnice într-o taxonomie structurată pentru a ajuta dezvoltatorii să descopere conținut de înaltă calitate. Directorul se distinge printr-un model de peer-review descentralizat, unde contribuitori independenți curatoriază, verifică și actualizează intrările pentru a asigura acuratețea și relevanța. Toate informațiile sunt stocate într-un format markdown de tip flat-file, controlat prin versiuni, ceea ce asigură independența față de platformă, transparența și auditabilitatea întregii colecții. Proiectul acoperă o suprafață vastă de capabilități, incluzând descoperirea resurselor tehnice, avansarea în cariera profesională și gestionarea cunoștințelor de dezvoltare software. Oferă acces la căi de învățare structurate, instrumente de infrastructură și securitate, utilitare de gestionare a datelor și resurse specializate pentru domenii variind de la sănătate la științe umaniste digitale. Repository-ul este menținut ca o colecție publică, controlată prin versiuni, permițând accesul programatic și actualizări bazate pe comunitate pentru datele sale structurate.
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 este o bibliotecă de utilitare JavaScript concepută pentru a extinde obiectele și prototipurile native cu metode suplimentare pentru manipularea și transformarea datelor. Funcționează ca un toolkit pentru utilitare de obiecte, manipularea datelor, inflexiunea șirurilor și polyfilling-ul funcționalităților de limbaj standard lipsă sau defecte. Biblioteca oferă posibilitatea de a mapa metode utilitare direct pe prototipurile built-in sau de a înfășura valori în obiecte temporare pentru a permite chaining-ul metodelor fără a modifica prototipurile globale. Include, de asemenea, un sistem de polyfill pentru a asigura un comportament consistent în diferite medii de execuție prin implementarea funcționalităților moderne de limbaj lipsă. Capabilitățile includ formatarea internațională a datelor și parsarea șirurilor de date umanizate. Biblioteca gestionează, de asemenea, procesarea limbajului natural prin inflexiunea și normalizarea șirurilor, traversarea profundă a proprietăților obiectelor imbricate și sortarea array-urilor conștientă de locale. În plus, oferă instrumente pentru clonarea obiectelor mutabile și definirea intervalelor de valori pentru numere, date și șiruri.
Native object extension library.
Coconut este un limbaj de programare funcțional care compilează în Python. Funcționează ca un compilator sursă-la-sursă, traducând sintaxa funcțională de nivel înalt în cod Python compatibil pentru a menține compatibilitatea la runtime. Limbajul introduce un sistem logic pentru pattern matching și destructurarea structurilor de date complexe. Oferă un mecanism pentru optimizarea apelurilor terminale (tail call optimization) pentru a preveni erorile de stack overflow în timpul apelurilor recursive profunde și utilizează un motor de evaluare leneșă (lazy evaluation) pentru a amâna calculele până când rezultatele sunt explicit necesare. Proiectul include suport pentru tipuri de date algebrice, operatori de pipeline și aplicare parțială. De asemenea, oferă un framework pentru procesarea paralelă a datelor prin distribuirea operațiunilor de mapare pe mai multe nuclee CPU.
Adds functional programming features to Python syntax.
Returns is a functional programming library for Python that provides type-safe containers for managing state, error handling, and optionality. It serves as a monadic container library and a type-safe error handling framework, replacing traditional try-catch blocks and null checks with Result and Optional containers to treat exceptions as data. The project is distinguished by its use of a specialized Mypy static analysis plugin to validate functional pipelines and emulate higher kinded types. It provides mechanisms for isolating side effects through IO containers and offers a framework for typ
Implements type-safe monads and functional composition.