【Elixir】GETTING STARTEDを翻訳してみる
こんにちは、しきゆらです
今回は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と同じく、括弧は必須ではない。
Elixirは2進数などの以下のような略記法をサポートしている
iex> 0b1010 10 iex> 0o777 511 iex> 0x1F 31
floatを表記する場合は「.」の後に少なくとも1つ数字並べればよい
また、指数付の数値を表現するために「e」をサポートしている
iex> 1.0 1.0 iex> 1.0e-10 1.0e-10
Elixirのfloatは、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
true、falseもAtomである
iex> true == :true true iex> is_atom(false) true iex> is_boolean(:false) true
今回はここまで
次回以降も雑翻訳で進めて行きます
おわり
ディスカッション
コメント一覧
まだ、コメントがありません