発端
プログラミングElixir 7章の練習問題でシーザー暗号を作る際に、モジュールで'a'
と'z'
の数値を定義しておきたかったので、パターンマッチしてくれねぇかなとおもったけど出来ませんでした
環境は以下
$ elixir -v
Erlang/OTP 23 [erts-11.1.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]
Elixir 1.11.2 (compiled with Erlang/OTP 23)
理想
defmodule MyModule do
[@a_val, @z_val] 'az'
end
ざんねんながらNG泣いちゃった。
** (SyntaxError) practice7/caesar.exs:4:20: syntax error before: "az"
(elixir 1.11.2) lib/kernel/parallel_compiler.ex:315: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/7
最終的にこの形になりました
defmodule MyModule do
@a_val Enum.at('a', 0)
@z_val Enum.at('z', 0)
end
動けばOKではありますけど、気持ち悪いので何か良い書き方とかあったらコメントいただけると嬉しいです