Buscar..


Introducción

Elixir Avanzado consejos y trucos que ahorran nuestro tiempo durante la codificación.

Creando sigilos personalizados y documentando

Cada x sigil llama a la respectiva definición de sigil_x

Definiendo sigilos personalizados

defmodule MySigils do
  #returns the downcasing string if option l is given then returns the list of downcase letters
  def sigil_l(string,[]), do: String.Casing.downcase(string)
  def sigil_l(string,[?l]), do: String.Casing.downcase(string) |> String.graphemes
  
  #returns the upcasing string if option l is given then returns the list of downcase letters
  def sigil_u(string,[]), do: String.Casing.upcase(string)
  def sigil_u(string,[?l]), do: String.Casing.upcase(string) |> String.graphemes
end

Múltiples [o]

Esta es solo la otra forma de escribir las condiciones OR múltiples. Este no es el enfoque recomendado porque en el enfoque regular cuando la condición se evalúa como verdadera, deja de ejecutar las condiciones restantes que ahorran el tiempo de evaluación, a diferencia de este enfoque que evalúa todas las condiciones primero en la lista. Esto es solo malo pero bueno para descubrimientos.

# Regular Approach
find = fn(x) when x>10 or x<5 or x==7 -> x end 

# Our Hack
hell = fn(x) when true in [x>10,x<5,x==7] -> x end

Configuración personalizada de iex - Decoración de iex

Copie el contenido en un archivo y guárdelo como .iex.exs en su directorio principal y vea la magia. También puedes descargar el archivo AQUÍ.

# IEx.configure colors: [enabled: true]
# IEx.configure colors: [ eval_result: [ :cyan, :bright ] ]
IO.puts IO.ANSI.red_background() <> IO.ANSI.white() <> " ❄❄❄ Good Luck with Elixir ❄❄❄ " <> IO.ANSI.reset
Application.put_env(:elixir, :ansi_enabled, true)
IEx.configure(
 colors: [
   eval_result: [:green, :bright] ,
   eval_error: [[:red,:bright,"Bug Bug ..!!"]],
   eval_info: [:yellow, :bright ],
 ],
 default_prompt: [
   "\e[G",    # ANSI CHA, move cursor to column 1
    :white,
    "I",
    :red,
    "❤" ,       # plain string
    :green,
    "%prefix",:white,"|",
     :blue,
     "%counter",
     :white,
     "|",
    :red,
    "▶" ,         # plain string
    :white,
    "▶▶"  ,       # plain string
      # ❤ ❤-»" ,  # plain string
    :reset
  ] |> IO.ANSI.format |> IO.chardata_to_string

)


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow