Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Programming Phoenix LiveView - CRC

crc.livemd

Programming Phoenix LiveView - CRC

Mix.install([
  {:kino, "~> 0.7.0"}
])

CRC: constructors, reducers, converters

Constructors create a term of the core type from inputs

Reducers transform a term of the core type to another term of that core type

Converters convert the core type to another type

defmodule Number do
  # constructor
  def new(string), do: Integer.parse(string) |> elem(0)
  # reducer
  def add(number, addend), do: number + addend
  # converter
  def to_string(number), do: Integer.to_string(number)
end
list = [1, 2, 3]
total = Number.new("0")
reducer = &Number.add(&2, &1)
converter = &Number.to_string/1
Enum.reduce(list, total, reducer) |> converter.()

Pipeline

[first, second, third] = list
"0"
|> Number.new()
|> Number.add(first)
|> Number.add(second)
|> Number.add(third)
|> Number.to_string()
|> dbg()

Untitled