Tipps zum Golfen in Elixir

8

Elixir ist eine relativ neue funktionale Sprache, an der ich mich sehr interessiert habe. Ich möchte allgemeine Tipps zum Golfen in Elixir erhalten und Techniken lernen, die auf Code-Golf-Probleme angewendet werden können, die für Elixir im Allgemeinen etwas spezifisch sind .


Basierend auf so vielen ähnlichen Fragen zu Python , Ruby , Javascript usw. werde ich auch versuchen, Tipps zu veröffentlichen, wenn ich mehr über die Sprache lerne.

Sheharyar
quelle
Was hat Elixir auf der Erlang-VM mit der Erlang-Sprache zu tun?
Alex A.

Antworten:

1

String- und char-Argumente benötigen keine Leerzeichen

Zum Beispiel IO.puts"Hello, World!"und IO.puts'cat'sind gültige Programme.

LegionMammal978
quelle
1

Verwenden Sie den Pipe-Operator oder die Klammer nicht zum Aufrufen von Methoden

# 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
quelle
1

Injizieren Sie Code in Zeichenfolgen

Anstatt etwas zu einer Zeichenfolge zu verketten, wie:

"prefix"<>code<>"suffix"

Sie können es verwenden #{}, um es in die Zeichenfolge einzufügen:

"prefix#{code}suffix"

Dies spart 3 Bytes.

Okx
quelle
0

Kartenargumente benötigen ebenfalls keine Leerzeichen

Wie bei der Antwort von LegionMammal978 können Sie beim Übergeben von Map als Argument an eine Methode Leerzeichen weglassen :

IO.inspect%{a: 1,b: 2}
Sheharyar
quelle
1
Können Sie die Leerzeichen nach den Doppelpunkten auf ähnliche Weise entfernen?
Alex A.
Traurigerweise Nein. Sie können jedoch Leerzeichen nach Semikolons und Kommas entfernen.
Sheharyar