====== Notes on Teaching and Learning Elixir ====== ===== Ordering for teaching functions =====

Right now everyone teaches anonymous functions first because they are easier to express in iex. Here's our ordering:

1. We introduce the concept of a module. Not coding, just the concept.
2. Invoking M.f() in a module
3. defmodule/def.
4. Pipes.
5. Anon f.

I ❤️ this order

— Bruce Tate (@redrapids) April 24, 2019
By [[https://twitter.com/redrapids/status/1121022240047403008|Bruce Tate:]] - We introduce the concept of a module. Not coding, just the concept. - Invoking M.f() in a module - defmodule/def. - Pipes. - Anon f. ===== Preferred method ===== [[https://elixirforum.com/t/is-introducing-elixir-getting-started-in-functional-programming-still-good/21984|"I prefer books as my preferred method of learning"]] ===== Method =====

"If you want to teach someone a real skill, teach him how to fail. He will never learn it in school." - @nntaleb

— Nassim Nicholas Taleb's Wisdom (@TalebWisdom) May 30, 2019
===== Calling functions ===== Module, function and arguments. ==== By arity ==== === Zeroary functions === Math.pi() alias :math, as: Math Math.pi() === Unary functions === Kenel.abs(-34) Kernel.abs (-34) Kernel.absolute(-34) Kernel.abs(-34) Kernel.abs -34 Kernel.abs (-34) Kernel.round(34.6) Kernel.floor(34.6) Kernel.ceil(34.9) === Binary functions === Kernel.max(1,2) Kernel.max(2,1) Kernel.min(2,1) Kernel.div(10,4) Kernel.rem(10,4) Kernel.div(10,0)