エリクサーでゴルフするためのヒント


8

Elixirは比較的新しい関数型言語であり、私はこれに深く関心を持っています。Elixirでのゴルフに関する一般的なヒントを取得し、Elixirに一般的ないくらか特有のコードゴルフ問題に適用できるテクニックを学びたいです。


PythonRubyJavascriptなどについての同様の多くの質問に基づいています。言語についてさらに学ぶときに、ヒントを投稿することも試みます。


Erlang VMで実行されているElixirはErlang言語と何が関係していますか?
Alex A.

回答:


1

文字列と文字の引数はスペースを必要としません

たとえば、IO.puts"Hello, World!"およびIO.puts'cat'は有効なプログラムです。


1

メソッドの呼び出しにパイプ演算子または括弧を使用しないでください

# 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

文字列にコードを挿入する

次のように文字列に何かを連結する代わりに:

"prefix"<>code<>"suffix"

を使用#{}して文字列に挿入できます。

"prefix#{code}suffix"

これにより、3バイトが節約されます。


0

マップ引数にもスペースは必要ありません

LegionMammal978の回答と同様に、Mapを引数としてメソッドに渡す場合は、スペースを省略できます。

IO.inspect%{a: 1,b: 2}

1
コロンの後のスペースも同様に削除できますか?
Alex A.

残念ながら、違います。ただし、セミコロンとコンマの後のスペースは削除できます。
Sheharyar
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.