2章 さぁ、はじめよう

インストール

http://www.erlang.org/download.htmlからどうぞ。
インストールしてパスを通す。
MacLinuxは、パッケージのバージョンが古いことがあるから、ソースからビルドしたほうがいいよとのこと。


CEAN(The Comprehensive Erlang Archive Network)というのを使う方法もある。
パッケージ管理ができるん?
http://cean.process-one.net/

というわけでCEANをインストールした。

とりあえず、start.batで起動して、
cean:install(compiler).
しといた。
ceanフォルダの中にあるstart.batを起動すればOK。

けど、コマンドプロンプトからも使いたいので、パスを通す。
Cドライブ直下に置いたので、パスはC:\cean\erlang\erts-5.5.5\windows\binに通す。
このままだと、コマンドプロンプトから

> erl

としてもエラーが出て立ち上がらない。
C:\cean\erlang\erts-5.5.5\windows\binにあるerlang.iniを編集する。
BindirとRootdirの指定が相対パスになっているので、絶対パスで書き直す。

[erlang]
Bindir=C:/cean/erlang/erts-5.5.5/windows/bin
Progname=erl
Rootdir=C:/cean/erlang

追記:なんだかCEANでやるとエラーが出てできないことがあったので、普通にCEANじゃないのをインストールしなおした。普通にインストールするほうはerlang.iniの編集とかいらないし。

変数

変数名は必ず大文字で始まる。
若干違和感がなくもないけど、副作用がないので、実質的には他の言語の定数みたいだと言えないこともないのでよしとする。

%コメント
X=12345.

コメントは、%で始める。TeXと同じなのが微妙な気がしないでもない。
式の終わりにはピリオドをつける。英語みたいだ。
一度Xに値を代入(束縛)したらもう変更できない。

=は代入演算子ではなく、パターン照合演算子。でもまぁ、代入演算子みたいなもん。

大域変数(グローバル変数)や局所変数はない。

Lhsって、なんの略だっけ? Left Hand で、Sって?

浮動小数

%除算
4/3.
%整数の除算
5 div 3.
%整数の剰余
5 rem 3.

アトム

数値以外の様々な不変値表すのに用いられる。
小文字で始まり、その後に英数字、アンダースコア(_),アットマーク(@)。

C言語などの列挙型に近いらしい。この感覚は微妙にわからん。
Rubyのシンボルに近いと思った。

タプル

コンマ(,)で区切り、中括弧({})で囲む。

Cの構造体に似てるが、名前がない点が異なる。
名前がないので、タプルの先頭にアトムでタグを付けておくのが推奨される。

{person, Name, Height, _, _} = {person, {name, peregrination}, {height, 170}, {footsize, 26}, {eyecolor, black}}. 

Name -> {name, peregrination}
Height -> {height, 170}
となる。

アンダースコア(_)は無名変数。

リスト

コンマ(,)で区切り、角括弧([])で囲む。
また、[H|T]とすると、ヘッドがH、テールがTとなる。
Tがリストでないと、「不正な形式」のリストとなる。
(ライブラリ関数のほとんどがリストが正しい形式であると仮定しているため注意)

[Hoge1, Hoge2|Tail] = [1,2,3,4,5,6]

Hoge1 -> 1
Hoge2 -> 2
Tail -> [3,4,5,6]

となる。

文字列

文字列は実際には単なる整数のリスト。
二重引用符(")で囲む。

文字列は、整数のリストの簡易表記なので、リスト内の整数がすべて表示可能な文字を表していれば、リストは文字列として表示される。(個人的にはキモイと思う。)

Name = "Hello"

[1,2,3]
%-> [1,2,3]

[83,117,114,112,114,105,115,101]
%-> "Surprise"