Protocols are one of the more important but less publicized features of Elixir.

That's why this lesson focuses on them directly rather than being part of a larger project. Topics covered include: defining protocols with defprotocol , @fallback_to_any , defdelegate and working with custom structs. We also go into how protocols can give Elixir, a functional language, some of the capabilities that are generally less convenient to implement in non-OO languages.

(Source code available for premium members)