sashaafm

sashaafm

Exads - Elixir Algorithms and Abstract Data Structures Collection

Hi everyone, some time ago I started building an algorithm and data structures collection for Elixir. My goal is to build the best and most complete collection of algos and ADS’s for Elixir, to be available for everyone to use as they need. So far I’ve started implementing the most popular data structures, like the Stack, Queue and Binary Search Tree. However, in order to have a really good collection that’s robust and complete, I will surely need some contributions.

I’m taking contributions in every form, be it corrections, new implementations, new algorithms or data structures or even test suites for the existing ones. Everyone’s free to contribute and I’ll accept most contributions as long as they reach a decent standard of quality (decent code, justifications for changes, and so on). But hey, even if you’re not sure if it’s good, please send them to me and maybe we’ll work together on it to make it better and merge it into the project. There’s a lot of people learning Elixir in this community and I think this would be a great way to learn and get some experience with the language.

Here’s the repo: Exads

In the README you have a roadmap of the algos and ADS’s I have on my mind right now, but I plan to implement more than those, so feel free to work on whatever you like, even if it’s not in the roadmap right now.

I’ve been writing some stories on Medium about this project. I just posted the second chapter about implementing the Binary Search Tree: Implementing the BST

As I’ve said, everyone’s free to help and also to critique my work (and writing skills) as long as it is constructive and helpful :slight_smile:

Most Liked

ejc123

ejc123

I will second this book. It goes into details about performance in FP style that most of us (or me at least) didn’t get in Algorithms class. Those classes seem to focus on imperative style analysis. This book introduces amortization and banker’s method. You can check out the full text here.

ramonsnir

ramonsnir

Really awesome, and really useful! Starred for future reference :smile:

uranther

uranther

I opened a pull request to add Travis CI and Inch CI badges :slight_smile: Cheers!

Where Next?

Popular in Announcing Top

ityonemo
Currently just starting out on a new mini-project - getting zig NIFs to run in elixir. https://github.com/ityonemo/zigler The idea here...
New
seancribbs
Today I released a new dialyzer Mix task as the dialyzex package! At the time we started writing this task, the existing dialyzer integra...
New
tmbb
I’ve been working on two packages (not on hex.pm yet) to build admin interfaces for phoenix apps: bureaucrat - which contains a bunch ...
New
brainlid
LangChain is short for Language Chain. An LLM, or Large Language Model, is the “Language” part. This library makes it easier for Elixir a...
New
riverrun
I’ve just released version 3 of Comeonin, a password hashing library. The following small changes have been made: changes to the NIF c...
New
kelvinst
Hey everyone! Well, we made this lib a while ago and now we decided to finally go out and public with it! It’s a tool for creating and m...
New
mindok
What is ContEx? A pure Elixir server-side data plotting/charting library outputting SVG. It has nice barcharts in particular and works g...
New
Hal9000
Here is my first stab at this. README pasted below. https://github.com/Hal9000/elixir_random Comments and critiques are welcome. Thank...
New
anshuman23
Hello all, I have been working on my proposed project called Tensorflex as part of Google Summer of Code 2018.. Tensorflex can be used f...
New
trisolaran
Hi! :waving_hand: I would like to present LiveSelect, a little library that I wrote to easily add a dynamic selection input to your LV f...
198 10978 107
New

Other popular topics Top

hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
baxterw3b
Hi guys, i’m new in the Elixir world, and i have to say, that i love it! i’m having some problem to understand anonymous functions with ...
New
shahryarjb
Hello, I have map which I want to convert it to string like this: the map: %{last_name: "tavakkoli", name: "shahryar"} the string I ne...
New
chrismccord
Phoenix 1.4.0 released Phoenix 1.4 is out! This release ships with exciting new features, most notably with HTTP2 support, improved deve...
688 31194 112
New
pmjoe
I have a relationship of love and hate with Elixir. Lots of things are just absolutely right, but there are some things that are kind of ...
New
msaraiva
Surface is an experimental library built on top of Phoenix LiveView and its new LiveComponent API that aims to provide a more declarative...
564 43806 214
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
grych
Hi folks, Few months ago I have announced the proof-of-concept of the library to manipulate the browsers DOM objects directly from Elixi...
639 52774 488
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New

We're in Beta

About us Mission Statement