Elixir Porgamming Language Cheatsheet

Cheatsheet for the Elixir programming language:

1. Basics

1.1. Variables

variable_name = value

1.2. Data Types

  • Integer: 42
  • Float: 3.14
  • Atom: :atom
  • String: "Hello"
  • List: [1, 2, 3]
  • Tuple: {1, "two", :three}

1.3. Pattern Matching

{a, b} = {1, 2}

2. Functions

2.1. Defining Functions

defmodule MyModule do
  def my_function(arg1, arg2) do
    # function body
  end
end

2.2. Anonymous Functions

add = fn a, b -> a + b end
result = add.(2, 3)

2.3. Pattern Matching in Functions

defmodule Math do
  def add(a, b), do: a + b
  def add(0, b), do: b
end

3. Control Flow

3.1. Conditionals

if condition do
  # code
else
  # code
end

3.2. Case Statement

case value do
  pattern1 -> # code
  pattern2 -> # code
  _ -> # default
end

3.3. Cond Statement

cond do
  condition1 -> # code
  condition2 -> # code
  true -> # default
end

4. Modules and Structs

4.1. Modules

defmodule MyModule do
  # code
end

4.2. Structs

defmodule Person do
  defstruct name: "", age: 0
end

person = %Person{name: "John", age: 30}

5. Lists and Enumerables

5.1. Lists

list = [1, 2, 3]

5.2. Enumerables

Enum.each([1, 2, 3], fn x -> IO.puts(x) end)

6. Processes

6.1. Spawning Processes

pid = spawn(fn -> # code end)

6.2. Sending and Receiving Messages

send(pid, {:message, data})
receive do
  {:message, data} -> # code
end

7. Error Handling

7.1. Try, Catch, and Rescue

try do
  # code
catch
  error_type -> # handle error
after
  # code to execute regardless of success or failure
end

8. OTP (Open Telecom Platform)

8.1. GenServer

defmodule MyServer do
  use GenServer

  def start_link(arg) do
    GenServer.start_link(__MODULE__, arg, name: __MODULE__)
  end

  def init(arg) do
    {:ok, arg}
  end

  def handle_call(:some_request, _from, state) do
    {:reply, :response, state}
  end
end

Refer to the official documentation for more in-depth information and examples.

1. What is Elixir, and why use a cheatsheet for it?

Elixir is a functional, concurrent programming language built on the Erlang VM. A cheatsheet provides a quick reference for its syntax and features, aiding programmers in efficient code development.

2. How can Elixir cheatsheets benefit beginners?

Elixir cheatsheets are invaluable for beginners, offering a concise overview of essential syntax, data structures, and common patterns. They accelerate the learning curve and serve as handy reminders during coding.

3. Are Elixir cheatsheets suitable for experienced developers?

Absolutely. Even seasoned Elixir developers find cheatsheets useful for quick lookups, especially when dealing with less-frequently used language features or when transitioning between projects with different requirements.

4. What topics does an Elixir cheatsheet typically cover?

An Elixir cheatsheet covers a range of topics, including variable declarations, pattern matching, modules, functions, processes, and common libraries. It acts as a comprehensive reference for various aspects of Elixir programming.