Table of Contents

Notes on Teaching and Learning Elixir

Ordering for teaching functions

<html> <blockquote class=“twitter-tweet” data-lang=“en”><p lang=“en” dir=“ltr”>Right now everyone teaches anonymous functions first because they are easier to express in iex. Here&#39;s our ordering: <br><br>1. We introduce the concept of a module. Not coding, just the concept. <br>2. Invoking M.f() in a module<br>3. defmodule/def. <br>4. Pipes. <br>5. Anon f.<br><br>I ❤️ this order</p>&mdash; Bruce Tate (@redrapids) <a href=“https://twitter.com/redrapids/status/1121022240047403008?ref_src=twsrc%5Etfw”>April 24, 2019</a></blockquote> <script async src=“https://platform.twitter.com/widgets.js” charset=“utf-8”></script> </html>

By Bruce Tate:

  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.

Preferred method

"I prefer books as my preferred method of learning"

Method

<html> <blockquote class=“twitter-tweet” data-lang=“en”><p lang=“en” dir=“ltr”>&quot;If you want to teach someone a real skill, teach him how to fail. He will never learn it in school.&quot; - <a href=“https://twitter.com/nntaleb?ref_src=twsrc%5Etfw”>@nntaleb</a></p>&mdash; Nassim Nicholas Taleb&#39;s Wisdom (@TalebWisdom) <a href=“https://twitter.com/TalebWisdom/status/1134230061270405120?ref_src=twsrc%5Etfw”>May 30, 2019</a></blockquote> <script async src=“https://platform.twitter.com/widgets.js” charset=“utf-8”></script> </html>

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)