Consejos para jugar al golf en Elixir

8

Elixir es un lenguaje funcional relativamente nuevo, en el que me he interesado profundamente. Me gustaría obtener consejos generales sobre el golf en Elixir y aprender técnicas que se pueden aplicar a problemas de código de golf que son algo específicos de Elixir en general. .


Basado en tantas preguntas similares sobre Python , Ruby , Javascript , etc. También intentaré publicar consejos a medida que aprenda más sobre el idioma.

Sheharyar
fuente
¿Qué tiene que ver Elixir que se ejecuta en Erlang VM con el lenguaje Erlang?
Alex A.

Respuestas:

1

Los argumentos de cadena y char no necesitan espacios

Por ejemplo, IO.puts"Hello, World!"y IO.puts'cat'son programas válidos.

LegionMammal978
fuente
1

No use el operador Pipe o paréntesis para llamar a métodos

# With Pipe
arg |> M.a |> M.b |> M.c   # 24 Bytes
arg|>M.a|>M.b|>M.c         # 18 Bytes

# With Parenthesis
M.c(M.b(M.a(arg)))         # 18 Bytes

# Only Spaces
M.c M.b M.a arg            # 15 Bytes
Sheharyar
fuente
1

Inyectar código en cadenas

En lugar de concatenar algo en una cadena, como:

"prefix"<>code<>"suffix"

Puede usarlo #{}para insertarlo en la cadena:

"prefix#{code}suffix"

Esto ahorrará 3 bytes.

Okx
fuente
0

Los argumentos de mapa tampoco necesitan espacios

Al igual que la respuesta de LegionMammal978 , puede dejar espacio al pasar Map como argumento a un método:

IO.inspect%{a: 1,b: 2}
Sheharyar
fuente
1
¿Puedes eliminar de manera similar los espacios después de los dos puntos?
Alex A.
Tristemente no. Pero puede eliminar espacios después de punto y coma y comas.
Sheharyar