10 dépôts
Collections and containers designed to preserve previous versions of themselves when modified to ensure immutability.
Distinct from Persistent Data Structures: The provided candidates are either part of awesome-lists or irrelevant niches (Go resources, voice-based workflows). This requires a primary library category under Programming Languages & Runtimes.
Explore 10 awesome GitHub repositories matching programming languages & runtimes · Persistent Data Structures. Refine with filters or upvote what's useful.
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
Provides a comprehensive library of persistent data structures for JavaScript that prevent direct mutation.
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
Implements persistent data structures that use structural sharing to efficiently preserve previous versions of state.
Clojure is a general-purpose, functional programming language hosted on the Java Virtual Machine. It is a homoiconic S-expression language that represents programs as nested data structures, allowing code to be manipulated and evaluated as data. The project provides a framework for JVM interoperability, enabling the invocation of Java methods and integration with other JVM-based languages. It distinguishes itself through a persistent data structure library that uses bitmapped vector tries to manage immutable collections and a programmatic REPL for interactive software development and real-tim
Ships highly efficient immutable collections based on bitmapped vector tries to ensure stability and scalability.
go-datastructures is a collection of thread-safe and lock-free data structures designed for high-performance concurrent applications in Go. It provides a modular library of specialized algorithmic toolsets, including a lock-free collection library and an immutable data structure library. The project distinguishes itself through a suite of persistent AVL trees and hash array mapped tries that use branch-copying to preserve previous versions. It also implements non-blocking hash maps, queues, and tries that enable linearizable snapshots and concurrent updates without the use of mutual exclusion
Implements persistent data structures that preserve previous versions through branch-copying and structural sharing.
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 persistent, immutable data structures where modifications create new versions while sharing existing data.
AlgoXY est un livre éducatif sur la programmation fonctionnelle et une publication technique produite sous forme de livre numérique LaTeX. Il sert de ressource d'apprentissage en programmation et de bibliothèque axée sur les algorithmes fonctionnels et les structures de données. Le projet fournit une collection de structures de données persistantes, telles que des arbres et des tas, conçues pour la gestion d'état immuable. Il inclut une série d'exercices d'implémentation et de réponses vérifiées pour enseigner les concepts fondamentaux de l'informatique à travers l'application pratique de la logique fonctionnelle. Le contenu couvre la conception de structures de données persistantes et l'implémentation d'algorithmes fonctionnels pour le tri et la recherche. Ces matériaux sont livrés sous forme de publication technique composée professionnellement via un système de build LaTeX.
Provides a collection of containers designed to preserve previous versions of themselves using structural sharing and immutability.
Implements persistent data structures with structural sharing for immutable collections that preserve prior versions.
Cette bibliothèque fournit une collection de structures de données spécialisées pour le langage Swift qui étendent la bibliothèque standard avec des types de conteneurs avancés. Elle inclut des implémentations pour les files d'attente à double extrémité utilisant des tampons circulaires, des files d'attente de priorité basées sur des tas min-max, et un stockage efficace en mémoire de bit-set et bit-array pour les valeurs booléennes. Le projet propose des collections ordonnées qui maintiennent les éléments dans un ordre trié via des implémentations d'arbres B, ainsi que des ensembles et dictionnaires persistants qui utilisent des arbres préfixes compressés pour partager des données entre des copies mutées. Elle fournit également des conteneurs spécialisés qui préservent l'ordre d'insertion. La bibliothèque couvre une gamme de capacités, y compris la gestion mémoire de bas niveau pour les tampons C et les valeurs non copiables, le stockage à capacité fixe, et l'utilisation du hachage robin hood pour optimiser l'utilisation de la mémoire et les vitesses de recherche.
Implements collections and containers that preserve previous versions through structural sharing to ensure immutability.
Ce projet fournit un ensemble de directives d'architecture logicielle, de normes de codage Lisp et de modèles de programmation fonctionnelle pour le développement Clojure. Il établit les meilleures pratiques pour implémenter une logique déclarative et gérer l'état partagé via l'utilisation de structures de données persistantes et de références atomiques. Le guide couvre les normes pour documenter les API publiques et organiser les répertoires de projet afin d'assurer une distribution de bibliothèque portable. Il détaille l'application de règles de formatage et de nommage cohérentes pour améliorer la lisibilité du code source et la collaboration en équipe. La portée s'étend aux modèles de développement idiomatiques, incluant l'organisation des espaces de noms (namespaces), la structuration des définitions de fonctions et des suites de tests, et la conception responsable des macros. Il fournit également des conseils sur la gestion de l'interopérabilité avec des types externes et la gestion de la distribution de bibliothèques via des coordonnées stables.
Advocates for the use of immutable collections to ensure thread safety and predictable performance.
Flix is a statically typed multi-paradigm programming language that combines functional, imperative, and logic programming paradigms within a single unified environment. It utilizes a constraint-driven execution environment to derive results by satisfying logical predicates rather than following linear sequential instructions. The language features a unification-based logic engine designed to solve complex computational problems through term unification and backtracking. This is supported by a core library of persistent immutable data structures that ensure side-effect free state management a
Ships a core library of persistent data structures to ensure side-effect free state management.