Map [1]
| Operation | Time Complexity |
|---|---|
| Access | O(log n) |
| Search | O(log n) |
| Insertion | O(n) for <= 32 elements, O(log n) for > 32 elements [2] |
| Deletion | O(n) for <= 32 elements, O(log n) for > 32 elements |
| <!-- livebook:{"autosave_interval_s":null,"persist_outputs":true} --> | |
| # Data Types | |
| ## Basic Types |
| defmodule Aplicar.Checks.SortModuleFunctions do | |
| use Credo.Check, | |
| base_priority: :low, | |
| explanations: [ | |
| check: """ | |
| Alphabetically ordered lists are more easily scannable by the read. | |
| # preferred | |
| def a ... | |
| def b ... | |
| def c ... |
| case {:ok, 5} do | |
| {:ok, n} -> "this will match and n is 5: #{n}" | |
| {:error, n} -> "this will not match" | |
| end |
| # the first argument for string.split is the return value of String.upcase("Hello Brooklin") | |
| # for functions with more than 1 parameter such as String.split, | |
| # skip the first argument because it's provided implicitly by the Pipe |> | |
| "Hello Brooklin" |> String.upcase |> String.split(" ") |
| defmodule Greeting do | |
| def say_hello name, name2 do | |
| "Hello #{name}, Hi #{name2}" | |
| end | |
| end | |
| Greeting.say_hello "Bob", "Bill" # Hello Bob, Hi Bill |
| defmodule AssertionTest do | |
| use ExUnit.Case, async: true | |
| test "always pass" do | |
| assert true | |
| end | |
| end |
| defmodule Greeting do | |
| # syntax: import ModuleName only: [method_name: number_of_parameters] | |
| import IO, only: [puts: 1] | |
| def print_greeting(name) do | |
| puts "Hello " <> name | |
| end | |
| end | |
| Greeting.print_greeting("Brooklin") # Hello Brooklin |
| defmodule Me do | |
| defmodule Info do | |
| def name do | |
| "Brooklin" | |
| end | |
| end | |
| end | |
| defmodule Greeting do | |
| alias Me.Info, as: Info |