gx3n-inue
@gx3n-inue (Nobuyuki Inoue)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Elixirでの予約語N

解決したいこと

Elixirで、小文字のnは、変数名(識別子)として使用でき、普通に値を代入できますが、
変数名としてN(大文字のN)に代入しようとすると、代入時にエラーになります。

識別子Nは、一体何者なのでしょうか?

iex(1)> N = 5
** (MatchError) no match of right hand side value: 5

iex(1)> n = 5
5
iex(2)> N
N

他言語だと、定数などで大文字で1文字の変数名を使うことがよくありますが、
移植していて上記のエラーに遭遇し、、予約語だとまでは気がついたのですが...

チュートリアルを最初から読めば、どこかに書いてあるのかもしれませんが、、見つけきれず...

追伸)
いろいろ確かめているうちに、Atomだということまでは解りました。
どんな用途で使うんでしょう??

iex(53)> is_atom(N)
true
0

1Answer

Nに限らず、大文字から始まる変数名は使えないんですね。

iex(8)> Ab=123
** (MatchError) no match of right hand side value: 123

iex(8)> ab=123
123
1Like

Your answer might help someone💌