バリケンのErlang日記 RSSフィード

2009-06-19

[] アトム 22:55  アトム - バリケンのErlang日記 を含むブックマーク はてなブックマーク -  アトム - バリケンのErlang日記  アトム - バリケンのErlang日記 のブックマークコメント

アトムとは、Rubyのシンボルのようなものだよ。

アトムは英小文字で始めて、英数字やアンダースコア「_」やアットマーク「@」を続けて書いたものになるよ。そしてアトムを評価するとアトムが返るよ。

1> atom.
atom
2> a_.
a_
3> a@@.
a@@
4> 

実は英大文字で始まるアトムや、空白を含んだアトム、アンダースコアやアットマーク以外の記号も含んだアトムを作ることもできるよ。その場合はシングルクォート「'」で囲んでね。

4> 'Hello'.
'Hello'
5> '2 + 3'.
'2 + 3'
6> 'Yes, we can.'.
'Yes, we can.'
7> 

シングルクォート自身を含むアトムを作りたい場合は、シングルクォートを「\'」で表してね。あと、バックスラッシュ「\」を含むアトムを作りたい場合は「\\」と表現してね(環境によっては「\」が「円記号」に見えるかもしれないけど、「バックスラッシュ」だと思ってね)。

7> 'I don\'t know.'.
'I don\'t know.'
8> '\\(^o^)/'.
'\\(^o^)/'
9> 

[] タプル 23:33  タプル - バリケンのErlang日記 を含むブックマーク はてなブックマーク -  タプル - バリケンのErlang日記  タプル - バリケンのErlang日記 のブックマークコメント

Pythonを勉強したときHaskellを勉強したときにも出てきたけど、タプルは「複数の値をまとめて一つの値にしたもの」だったよね。

Erlangでタプルを表現するには、値をカンマで区切って、「{}」で囲むよ。

1> {2, 3}.
{2,3}
2>

タプルの中にタプルを入れることもできるよ。

2> {2, {3, 5}}.
{2,{3,5}}
3>

タプルは「無名の構造体」のようなものだけど、そのタプルが何を意味するのかを分かりやすくするために、タプルの最初の要素に「そのタプルが何を意味しているか」をアトムを使って表現しておくのがErlang流、みたいだよ。

3> {user, {name, muscovyduck}, {password, hogehoge}}.             
{user,{name,muscovyduck},{password,hogehoge}}
4>

トラックバック - http://erlang.g.hatena.ne.jp/muscovyduck/20090619