Elixir で Hello, World!
2022/11/29
Elixir も触っておきたいなと思ったので、取り急ぎの Hello, World! をやってみた
インストール
Mac は HomeBrew でインストールすることができる
$ brew install elixir
$ elixir --version
Erlang/OTP 25 [erts-13.1.1] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit:ns] [dtrace]
Elixir 1.14.2 (compiled with Erlang/OTP 25)
他のインストール方法は https://elixir-lang.org/install.html を参照
インタラクティブモード
いわゆる REPL
$ iex
Erlang/OTP 25 [erts-13.1.1] [source] [64-bit] [smp:12:12] [ds:12:12:10] [async-threads:1] [jit:ns] [dtrace]
Interactive Elixir (1.14.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 1 + 2
3
Ctrl + C
を2回で終了できる
スクリプトモードで Hello, World!
拡張子 exs
でファイルを作って、elixir ファイル名
で実行
hello.exs
defmodule Hello do
def greet do
IO.puts "Hello, World!"
end
end
$ elixir hello.exs
Hello, World!
コンパイルして Hello, World!
拡張子 ex
でファイルを作って、elixirc ファイル名
でコンパイル
hello.ex
defmodule Hello do
def greet do
IO.puts "Hello, World!"
end
end
$ elixirc hello.ex
Hello, World!
コンパイル時でもプログラムが実行されて、「Hello, World!」が出力された
$ ls
Elixir.Hello.beam hello.ex
コンパイルすると Elixir.Hello.beam
というファイルが生成された
コンパイルされたファイルは、elixir -e モジュール名.関数名
で実行することができる
$ elixir -e Hello.greet
Hello, World!
補足
拡張子の ex
, exs
は、コード(ファイル)をどの目的で書いたかの意思表示をするもので、何か違いがあるわけではない
拡張子 ex
でスクリプトモードが実行できるし、拡張子 exs
でもコンパイルできる
$ elixir hello.ex
Hello, World!
$ elixirc hello.exs
Hello, World!