erlang インストール 〜 代入
普段は関数型言語から程遠い僕が、使った事もないerlangを今更勉強してみる企画。そしてその記録がココ。
1日坊主に終わらなかったら奇跡。
更新のペースが速くなる事はないと思います。
あと、Erlangと打つのが面倒なので、erlangと記述するのにはご容赦を。
なぜerlang?
- 並列処理が得意なんだって!
- これからはマルチスレッドが来るから関数型言語なんだって!
- プログラマなら複数の言語が出来ないとダメなんだって!
- 会社で使ってる言語だと自宅でやる気力が起きないよ!
- 上司の机にerlangの本があるよ!
明確にこれが使いたいという理由があったわけではないです。
別に新しい言語というわけでもないですし。
でもまぁ、入門してみましょう。
erlangの特徴
http://ja.wikipedia.org/wiki/Erlang
- エリクソン社製
- 関数型
- 単一代入
- 並列処理が得意
- 複数プロセスの生成は、OSのプロセスとスレッドとも異なる
- 軽量なスレッドで、Javaのグリーンスレッドに似ている
- ホットスワップ可能
- 基本的にはインタプリタ
- 一応コンパイラもある
プロセスの部分は調べないといけませんね。
でも、基本を抑えてから徐々に行く。
今更焦っても仕方ない。
ここで、大事なのは「並列処理が得意」と「単一代入」かな?
インストール
公式サイトのDownloadsから「Windows binary」の最新版を落とす。
あとは実行して、環境変数にErlangのbinフォルダへのpathを通して、コマンドプロンプトからお決まりをしてみる。
>erl Eshell V5.7.4 (abort with ^G) 1> io:fwrite("Hello World\n"). Hello World ok
特徴的に感じたところ
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)と呼ぶ
- "="はパターン照合処理を意味する
- 右辺を評価して、結果を左辺とパターン照合する
- 数学の"="に近いかも
- "/"は常に浮動少数を返す
と、今日はここまで。
早く並列処理まで行きたいな〜。。。
でも、基本からやらないと。