3 repositorios
Ordered persistent collections of data utilizing high-performance structures like AVL trees.
Distinct from Immutable Data Structures: Distinct from Immutable Data Structures: specifically targets ordered sequences and high-performance access patterns.
Explore 3 awesome GitHub repositories matching part of an awesome list · Immutable Sequences. Refine with filters or upvote what's useful.
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
Provides high-performance ordered collections using persistent arrays and AVL trees.
Cats es una biblioteca de programación funcional y type classes para Scala, diseñada para implementar patrones algebraicos y abstracciones funcionales. Proporciona un conjunto estandarizado de interfaces y un kit de herramientas modular de wrappers y contenedores funcionales para permitir el polimorfismo ad-hoc y la programación genérica entre tipos dispares. El proyecto sirve como estándar de abstracción funcional, ofreciendo una suite de transformadores de mónadas para componer contextos con efectos anidados y manejar múltiples efectos secundarios computacionales dentro de un solo pipeline. Además, permite la construcción de lenguajes específicos de dominio (DSL) embebidos al representar la lógica del programa como estructuras de datos que se interpretan por separado de sus definiciones. La biblioteca cubre amplias áreas de capacidad, incluyendo la manipulación algebraica de datos para combinar y reducir valores, gestión de estado con seguridad de tipos y manejo funcional de errores para formalizar la acumulación y recuperación de errores. También proporciona herramientas para la gestión de computación con efectos y la extensión de tipos de colección estándar con capacidades funcionales. La biblioteca incluye mecanismos para la validación de leyes algebraicas, asegurando que las instancias de type classes cumplan con las propiedades matemáticas.
Implements high-performance immutable sequences with constant-time appending and concatenation.
Janet es un lenguaje de programación dinámico basado en Lisp que cuenta con una máquina virtual de bytecode basada en registros y un motor de scripting integrable. Funciona como un runtime de concurrencia basado en fibras e incluye un motor de análisis basado en Gramáticas de Expresión de Análisis (PEG). El proyecto se distingue por su capacidad de integrarse en aplicaciones de C o C++ a través de una interfaz de cabecera mínima. Utiliza un sistema de macros al estilo Lisp para la transformación de código en tiempo de compilación y emplea herencia de tablas basada en prototipos para el comportamiento orientado a objetos. El runtime cubre un amplio conjunto de capacidades, incluyendo la gestión de IO asíncrona a través de un bucle de eventos no bloqueante, interoperabilidad de bibliotecas nativas a través de una interfaz de funciones externas y procesamiento de texto integral utilizando gramáticas PEG. También proporciona herramientas para la automatización del sistema, como un bucle de lectura-evaluación-impresión (REPL), un sistema de módulos para la resolución de símbolos y utilidades para la comunicación de sockets de red y la gestión del sistema de archivos. El entorno incluye herramientas de diagnóstico para la depuración de la ejecución de bytecode y puede empaquetar el código fuente en ejecutables binarios independientes.
Enables the creation and slicing of tuples and arrays to manage ordered, read-only data.