A collection of classic algorithms and data structures implemented in Erlang for educational and practical use.
erlang-algorithms is an open-source library that implements classic computer science algorithms and data structures in the Erlang programming language. It provides functional implementations of graph algorithms (like Dijkstra and A*), search algorithms, and data structures (including graphs, heaps, and union-find) specifically designed for Erlang's concurrent, functional paradigm.
Erlang developers needing algorithm implementations for their projects, computer science students learning algorithms in functional programming contexts, and developers interested in seeing how classic algorithms translate to Erlang's unique programming model.
It offers idiomatic Erlang implementations that are both educational and practical, filling a gap for algorithm resources in the Erlang ecosystem while demonstrating functional programming approaches to algorithmic problems.
Implementations of popular data structures and algorithms
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implementations are clean and functional, adhering to Erlang's paradigm for easy integration, as emphasized in the project philosophy.
Well-documented with demo functions, it helps developers understand algorithm implementation in functional programming, per the Key Features.
Includes dialyzer analysis and demo runs for code quality assurance, ensuring reliability in practical use.
Provides essential algorithms like Dijkstra and A* for pathfinding, filling a gap in the Erlang ecosystem for graph processing.
Focuses primarily on graph algorithms and basic data structures, lacking implementations for other areas like sorting or advanced data structures.
Relies on a GitHub site for full documentation, which may not be as comprehensive or maintained as official libraries, posing risks for production use.
As an Erlang-specific library, it has limited community support and fewer updates compared to mainstream algorithm libraries in other languages.