LoginSignup
3
0

More than 5 years have passed since last update.

Elixir入門の入門(インストール→「Hello, World!」を表示)

Last updated at Posted at 2018-12-19

最近、Elixirが気になっているので、Elixirのインストールと「Hello, World!」を表示するスクリプトを書いてみました。

Elixirをインストールする

まず、Elixirを利用するための環境を整備したいと思います。
Elixirのインストールは、公式サイトに記載されています。
https://elixir-lang.org/install.html

私は、Macを利用しているので、 brew コマンドで簡単にインストールすることができます。

$ brew install elixir

「Hello, World!」を実行してみる

とりあえず、「Hello, World!」を実行してみます。
iex コマンドを利用すると、インタラクティブにコードを実行することができます。

% iex
Erlang/OTP 21 [erts-10.1.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe] [dtrace]

Interactive Elixir (1.7.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> IO.puts "Hello, World!"
Hello, World!
:ok

せっかくなので、新規に helloworld.ex というファイルを作成し、コンパイルして実行してみます。
ちなみに、私は開発にVisual Studio Code(以下、VS Code)を利用しているので、 vscode-elixir というプラグインを使っています。シンタックスハイライトなども行ってくれるので、とても便利です。
https://marketplace.visualstudio.com/items?itemName=mjmcloug.vscode-elixir

helloworld.ex
defmodule Helloworld do
    def helloworld do
        IO.puts "Hello, World!"
    end
end

Helloworld.helloworld

コンパイル方法は、下記の通りです。

% elixirc helloworld.ex
Hello, World!

コンパイルの実行が終わると、 Elixir.Helloworld.beam というファイルが生成されます。

% ls
Elixir.Helloworld.beam  helloworld.ex

コンパイルされたファイルを実行するには、 elixir -e コマンドを実行します。

% elixir -e Helloworld.helloworld
Hello, World!

ソートプラグラムを作ってみる

「Hello, World!」だけではつまらないので、ソートプラグラムを作ってみたいと思います。
作るとは言っても、既に Enum.sort というメソッドが用意されているので、そのメソッドを利用してみたいと思います。

Enum.sortのドキュメントは下記URLを参照ください。
https://hexdocs.pm/elixir/Enum.html#sort/2

数値配列を降順ソートする実行結果は下記の通りとなります。
とても簡単です。

iex(1)> list = [1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
iex(2)> Enum.sort(list, &(&1 >= &2))
[5, 4, 3, 2, 1]

また、文字列配列をバイト数が大きい順に並べるには、下記コマンドを実行します。

iex(1)> list = ["a", "ab", "abc", "abcd", "abcde"]
["a", "ab", "abc", "abcd", "abcde"]
iex(2)> Enum.sort(list, &(byte_size(&1) > byte_size(&2)))
["abcde", "abcd", "abc", "ab", "a"]

とても便利。以上です。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0