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.


¿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.


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

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.


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}

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.