Dicas para jogar golfe em Elixir

8

Elixir é uma linguagem funcional relativamente nova, da qual me interesso profundamente. Gostaria de obter dicas gerais sobre golfe no Elixir e aprender técnicas que podem ser aplicadas a problemas de código-golfe que são um pouco específicos do Elixir em geral. .


Com base em tantas perguntas semelhantes sobre Python , Ruby , Javascript , etc. Também tentarei postar dicas à medida que aprender mais sobre o idioma.

Sheharyar
fonte
O que o Elixir em execução na VM Erlang tem a ver com o idioma Erlang?
Alex A.

Respostas:

1

Argumentos de string e char não precisam de espaços

Por exemplo, IO.puts"Hello, World!"e IO.puts'cat'são programas válidos.

LegionMammal978
fonte
1

Não use o operador Pipe ou parênteses para chamar 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
fonte
1

Injetar código em strings

Em vez de concatenar algo em uma string, como:

"prefix"<>code<>"suffix"

Você pode usar #{}para inseri-lo na string:

"prefix#{code}suffix"

Isso economizará 3 bytes.

Okx
fonte
0

Os argumentos do mapa também não precisam de espaços

Como a resposta de LegionMammal978 , você pode deixar espaço ao passar o Map como argumento para um método:

IO.inspect%{a: 1,b: 2}
Sheharyar
fonte
1
Você também pode remover os espaços após os dois pontos?
Alex A.
Infelizmente não. Mas você pode remover espaços após ponto e vírgula e vírgulas.
Sheharyar