elixir – インストールして試す

環境の説明

インストールに先立って、俺が使ってる環境を説明するよ。

項目 内容
サーバ VirtualBoxのVM
OS Fedora 24 サーバの最小構成

実はこのVM、ヘッドレスモードでバッチ作って、それをWindows起動時に実行するようにしてるので、いつでもWindowsからLinuxを使うことができるんだ。

ちょっと前にWindowsでUbuntuとかいう(ゆとりに人気の)OSのシェルが使えるようになったらしいけど、Ubuntuってあれでしょ?本家と日本の間で言語の問題が起き、コミュニティが分裂したんだっけ?

なんていうか、一つのOSなのにコミュニティとかで分裂してる時点でさ、俺はOSとしてどうなんだろって思ってる。

だから個人的に使うことは無いかな。使いたくない(そもそもUbuntuが人気があるのってUSBメモリに入るとかGnomeのUnityなんじゃないの?わからんけど)。

Windowsに入ってるシェルがUbuntuなのかどうか実はよく知らないし、そもそもあんまり興味がないんだけど、WindowsはWindowsなんだからWindowsで行けばいいと思うな。

個人的にはカーネルをLinuxにしたWindowsが発売されたら超愛用したいって思ってる。そして最強のOSは、カーネルがLinux、ウィンドウシステムがWindows、GUIがMacって感じかな。

というわけで、Linuxって言ったら俺はFedoraだな。CentOSはなんだかよくサーバで使われてるけど、俺からしたらただの家政婦だ。愛せる女ではない。そんな大量生産っぽいOSなんか犬が喰え。

俺は自分にあったOSを使いたい。だから10年前からFedoraだ(15年前だったかもしれない)。Fedora16とかラップトップに入れて持ち運んで遊んでた。今はもうFedoraも24。ナイスじゃて。

クライアント用に使うならデフォルトでほぼフル装備のFedoraでしょ、と俺は思ってる(というより、ただ俺がFedoraが好きなだけ)。

ターミナルだけど、Poderosa 4っていう案外手頃なターミナルソフトがメンテナンス放置されてるらしいので、RLoginとかいう設定が超わけわからんけど使ってみると超使いやすいターミナルソフトを使ってアクセスしてる。

Poderosa 5は有償となったようだ。実にナウいね。

インストールする

普通にログインして、普通にrootになる。
そして普通にdnfでインストールする。

elixirはErlang(アーラン)の仮想環境上で動く言語なので、Erlangも入る。
Erlangってなに?って思ったらググれや。

インストールが正しく終わると、iexコマンドが使えるようになる。
ieって付くと嫌な感じがするけど、このiはインタラクティブのiだ。

だから安心。

使ってみる

iexを叩くと対話モードで起動する。

以前練習でPythonやってたときのIDLEみたいなもんだね。

四則演算

普通に四則演算をすると答えを表示してくれる。

ちなみに割り算と余りは関数を使う。

カンマのあとのスペースは別に無くても大丈夫。俺はJavaScript書くときにJsHintとか使ってたので、こういう書き方が慣れてるだけ。それに見やすいからね、この方が(フォーマットは主観的なもんだと思うので、異論はあるだろうけど、それゆえに議論するのは無駄。みんなでコーディングするならただじゃんけんとかで決めればいいだけ)。

ちなみに関数のカッコ(パーレン)はなくても大丈夫。

これは楽だ。

JavaScript(ECMAScript5)に対するCoffeScriptとかTypeScript的な感じがする。好きな方を選べるわけね。

ちなみにプロンプトにはカッコで数字が表示されてる。
これは、やり取りの回数だ。あんまり気にしなくて良い。

tmp00011

関数を使ってみる

真偽値なんかも扱える。
is_boolean関数を使ってみる。

ちなみにこのis_boolean関数は引数(ひきすう)を1つとるので、is_boolean/1と書くのがelixirの流儀らしい。うんわかった。はい覚えた。

ちなみにphpなどのゆるふわ言語とちがって、1という数字はtrueではない。

1は番号の1だ。trueではない。

アトム

アトムという用語がある。これはtrueやfalseなどの予約語だ。

通常変数には変数自体の名前と中身があるが、アトムというのは変数名と中身が同じものと言う意味になる。

アトミックというのは”分割出来ない”という意味があるが、その意味で正しいと思う。

別のいくつかの言語ではこれをシンボルと呼んでいます

なるほど。

そしてelixirでのアトムはコロンを付けて表す。コロンとか言うとちょっとPascalぽい気がした。Pascalは代入で使うけどね。

trueとfalseは実はアトムなので、:trueと:falseと同意。

文字列

ダブルクオートで囲み、UTF-8として認識してくれるらしい。

ダブルクオートで囲まないとエラーになる。

ダブルクオートの中で変数展開もできる。

UTF-8なのでウムライトなども受け付けてくれる(Python2系に欲しかった)

ちなみにこれらのドイツ語系を入力するには、IMEを日本語モードにした状態でShift+文字でOKだ。
eのウムライトなら、Shift+Eを押してEを入力し、そのままスペースキーなどでëに変換すればよい。コピペしろとか書いてあるブログがあるけど、そんな必要はない。

ちなみに改行も素直に受け付けてくれる。

エスケープシーケンスが入るようだ。

おわり

次回は評価、束縛とかの予定。