erlang インストール 〜 代入

普段は関数型言語から程遠い僕が、使った事もないerlangを今更勉強してみる企画。そしてその記録がココ。
1日坊主に終わらなかったら奇跡。
更新のペースが速くなる事はないと思います。
あと、Erlangと打つのが面倒なので、erlangと記述するのにはご容赦を。

なぜerlang?

  • 並列処理が得意なんだって!
  • これからはマルチスレッドが来るから関数型言語なんだって!
  • プログラマなら複数の言語が出来ないとダメなんだって!
  • 会社で使ってる言語だと自宅でやる気力が起きないよ!
  • 上司の机にerlangの本があるよ!

明確にこれが使いたいという理由があったわけではないです。
別に新しい言語というわけでもないですし。
でもまぁ、入門してみましょう。

erlangの特徴

http://ja.wikipedia.org/wiki/Erlang

プロセスの部分は調べないといけませんね。
でも、基本を抑えてから徐々に行く。
今更焦っても仕方ない。
ここで、大事なのは「並列処理が得意」と「単一代入」かな?

インストール

公式サイトのDownloadsから「Windows binary」の最新版を落とす。
あとは実行して、環境変数Erlangのbinフォルダへのpathを通して、コマンドプロンプトからお決まりをしてみる。

>erl
Eshell V5.7.4  (abort with ^G)
1> io:fwrite("Hello World\n").
Hello World
ok
  • erlはrubyirbみたいなもの
    • ちょっとしたものを試す時に便利
  • リセットをする時はCTRL+G

特徴的に感じたところ

erlに入力してみた。

1> 111111111111111 * 2222222222222 * 3333333333333333.
823045267489628724279835391037119341563786
2> x = 1.
 ** exception error: no match of right hand side value 1
3> X = 2.
2
4> X = 3.
 ** exception error: no match of right hand side value 3
5> X = X + 1.
 ** exception error: no match of right hand side value 3
6> 6/2.
3.0
  • 文の終わりはピリオド
  • 整数演算は多倍長整数
    • 整数演算では誤差がない
  • 変数は大文字
  • 変数へは単一代入
    • 二度代入するとエラー
      • 上記5番目は X1 = X + 1というように使った事のない変数に入れていく
  • 変数に代入する事を束縛するという
    • 代入済みの変数を束縛済み変数(bound variable)と呼ぶ
  • "="はパターン照合処理を意味する
    • 右辺を評価して、結果を左辺とパターン照合する
    • 数学の"="に近いかも
  • "/"は常に浮動少数を返す


と、今日はここまで。
早く並列処理まで行きたいな〜。。。
でも、基本からやらないと。