高木のブログ

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!

参考


SNS でシェアする


ytkg

Written by ytkg, Twitter, GitHub