【Elixir】GETTING STARTEDを翻訳してみる

Elixir

こんにちは、しきゆらです

今回はElixirという言語について触れて行きます

 

CとかJavaの復習したいんだけど、なんで別の新しい言語触っているんですかねぇ・・・


 

 

Elixirとは?

Elixirとは、簡単に言うと「Erlang」という言語をRubyっぽい文法で記述できる言語です(かなり荒っぽい表現)

そもそも、Erlangというものがよくわかりません。調べてみました。

 

Erlangとは?

Ericssonという会社で作られた言語で、汎用的な用途に使うことができる並行処理指向のプログラミング言語だそうな(Wikipediaより)

どうやら、関数型言語、並立処理、ホットスワップができることが特徴のよう

(「イーラング」って読むのかと思ったら「アーラン」って読むようです)

Prologという言語の影響を強く受けていて、他の言語と比べてとっつきにくい、というのが多くの人の感想

(Prologは触ったことがあるけど、よくわからなかった)

 

そこで、Erlangをもっとわかりやすい文法で使いたい!ということで様々な言語が生まれた

その一つがElixirというわけ

 

面倒なことはいい、まずはインストールだ

Windowsの場合、インストーラが用意されている

他のOSに関しても、上記サイトにインストール方法がかかれているのでそちらを参照

なお、ElixirはErlangの上で動いているので、インストーラを実行するとErlangもインストールされる

 

実際に動かしてみる

インストールが終わったら、コマンドプロンプトで「iex」と打って実行

これは、Rubyで言うところのirbと同じものである

(出ない場合は、パスを通したかなどを確認したり再インストールしてみるといいと思う)

 

まずは、Hello Worldを

iex実行中に

iex> IO.puts("Hello World!!")

と打ってエンター

Hello World
:ok

と帰ってくるはず

これで最初の一歩を踏み出した!やったね!!

 

今回の本題

さて、ようやく今回の本題に入る

Elixirという言語、日本語の情報が少ない

ということで、Elixirのサイト上にある「GETTING STARTED」を読みながら触っていこうと思う

ページタイトル的に、「これ読めば書けるようになるよ」ってことでしょ?あってる?

今回は、Basic typesのAtomsまで

 

Basic types

まずは、基本的な型について

1

integer

0x1F

integer

1.0

float

true

boolean

:atom

atom/symbol

“elixir"

文字列

[1,2,3]

リスト

{1,2,3}

タプル

 

Basic arithmetic(基本的な算術)

iex> 1 + 2
3
iex> 5 * 5
25
iex> 10 / 2
5.0

 

10/2」に関して、Elixirは「/」演算子は常にfloatを返す。integerで必要な場合は「div」や「rem」を使うと良い

rem」は余りを返す

iex> div(10, 2)
5
iex> div 10, 2
5
iex> rem 10, 3
1

 

Rubyと同じく、括弧は必須ではない。

Elixir2進数などの以下のような略記法をサポートしている

iex> 0b1010
10
iex> 0o777
511
iex> 0x1F
31

 

floatを表記する場合は「.」の後に少なくとも1つ数字並べればよい

また、指数付の数値を表現するために「e」をサポートしている

iex> 1.0
1.0
iex> 1.0e-10
1.0e-10

Elixirfloatは、64bitの浮動小数点表現である

floatの小数以下を四捨五入、切り捨てる場合は「round」「trunc」関数を用いる

iex> round(3.58)
4
iex> round(3.215)
3
iex> trunc(3.58)
3
iex> trunc(3.215)
3

 

Booleans

Elixirは「true」「false」をbooleanとしてサポートしている

iex> true
true
iex> true == false
false

 

Elixirは変数のタイプをチェックするために述語関数をサポートしている。例えば、「is_boolean/1」は渡されたものがbooleanかチェックを行う関数である。

iex> is_boolean(false)
true
iex> is_boolean(true)
true
iex> is_boolean(1)
false
iex> is_boolean("true")
false

Note:

Elixirの関数は、名前や引数の数のチェックを行う。「is_boolean/1」の場合、「is_boolean」という名前の引数が1つだけの関数を調べる。存在しないが、「is_boolean/2」の場合、同じ名前だが、取る引数が異なる。

その他、「is_integer/1」「is_float/1」「is_number/1」は、受け取ったものがそれぞれ整数、浮動小数、数かどうかをチェックする

Atoms

Atomは、他の言語ではsymbolと呼ばれている。

(Rubyでもシンボルってあるけど、hashのキーとして使うくらいしかしてないしよくわかって無い)

iex> :hello
:hello
iex> :hello == :world
false

truefalseAtomである

iex> true == :true
true
iex> is_atom(false)
true
iex> is_boolean(:false)
true

 

今回はここまで

次回以降も雑翻訳で進めて行きます

 

おわり

Posted by しきゆら