91 مستودعات
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.
هذا المشروع عبارة عن دليل يديره المجتمع ويعمل كفهرس شامل لأدوات البرمجيات، وأطر العمل، والمواد التعليمية. يعمل كقاعدة معرفية مفتوحة المصدر، حيث ينظم مجالات هندسية وموارد تقنية متنوعة في تصنيف هيكلي لمساعدة المطورين في اكتشاف محتوى عالي الجودة. يتميز الدليل بنموذج مراجعة الأقران اللامركزي، حيث يقوم مساهمون مستقلون بتنظيم وتدقيق وتحديث الإدخالات لضمان الدقة والملاءمة. يتم تخزين جميع المعلومات بتنسيق markdown في ملفات مسطحة (flat-file) خاضعة للتحكم في الإصدار، مما يضمن استقلالية المنصة والشفافية وقابلية التدقيق للمجموعة بأكملها. يغطي المشروع نطاقاً واسعاً من القدرات، بدءاً من اكتشاف الموارد التقنية، والتطوير المهني الوظيفي، وإدارة معرفة تطوير البرمجيات. ويوفر الوصول إلى مسارات تعليمية منظمة، وأدوات البنية التحتية والأمن، ومرافق إدارة البيانات، وموارد متخصصة لمجالات تتراوح من الرعاية الصحية إلى العلوم الإنسانية الرقمية. يتم الحفاظ على المستودع كمجموعة عامة خاضعة للتحكم في الإصدار، مما يسمح بالوصول البرمجي والتحديثات التي يقودها المجتمع لبياناته المهيكلة.
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 هي مكتبة أدوات JavaScript مصممة لتوسيع الكائنات والنماذج الأولية الأصلية بطرق إضافية لمعالجة البيانات وتحويلها. تعمل كمجموعة أدوات لكائنات الأدوات، ومعالجة التاريخ، وتصريف السلاسل، وتعبئة الميزات اللغوية القياسية المفقودة أو المعطلة. توفر المكتبة القدرة على تعيين طرق الأداة مباشرة على النماذج الأولية المدمجة أو تغليف القيم في كائنات مؤقتة لتمكين تسلسل الطرق دون تعديل النماذج الأولية العالمية. كما تتضمن نظام تعبئة لضمان سلوك متسق عبر بيئات تنفيذ مختلفة من خلال تنفيذ وظائف اللغة الحديثة المفقودة. تشمل القدرات تنسيق التاريخ الدولي وتحليل سلاسل التاريخ المؤنسنة. تتعامل المكتبة أيضاً مع معالجة اللغة الطبيعية من خلال تصريف السلاسل والتطبيع، واجتياز الخصائص العميق للكائنات المتداخلة، وفرز المصفوفات المدرك للمحلية. بالإضافة إلى ذلك، توفر أدوات لاستنساخ الكائنات القابلة للتغيير وتحديد نطاقات القيم للأرقام والتواريخ والسلاسل.
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 هي مكتبة برمجة وظيفية لـ Python توفر حاويات آمنة من حيث النوع لإدارة الحالة، ومعالجة الأخطاء، والاختيارية. تعمل كمكتبة حاويات مونادية (monadic) وإطار عمل لمعالجة الأخطاء آمن من حيث النوع، حيث تستبدل كتل try-catch التقليدية وفحوصات null بحاويات Result و Optional لمعاملة الاستثناءات كبيانات. يتميز المشروع باستخدامه لمكون إضافي متخصص للتحليل الثابت Mypy للتحقق من خطوط الأنابيب الوظيفية ومحاكاة الأنواع ذات الرتب الأعلى. يوفر آليات لعزل الآثار الجانبية من خلال حاويات IO ويقدم إطار عمل لحقن التبعية الآمن من حيث النوع الذي يؤجل توفير التبعيات حتى التنفيذ النهائي للحساب. تغطي المكتبة نطاقاً واسعاً من البدائيات الوظيفية، بما في ذلك التجزئة (currying)، والتطبيق الجزئي، وتكوين خطوط أنابيب البيانات التصريحية. تدعم إدارة سير العمل غير المتزامن عن طريق تغليف الـ coroutines في حاويات لسلسلة العمليات غير المحظورة وتتضمن أدوات مساعدة لإدارة دورة حياة الموارد والتحقق من القوانين الجبرية للحاويات المخصصة.
Implements type-safe monads and functional composition.