2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Elixirのモジュールについて②

Posted at

この投稿は続きです。まだElixirのモジュールについて①を読んでいなければ
そちらから読み始めることを推奨します。

Elixir勉強中の新高専生、Nyayutaです。
学校が始まり、忙しくなってきました。
前回の続きからはじめます。

標準モジュール

ここの続きです。

IO

IOは入出力を扱うモジュール。
Input/Output(入力/出力)の略称でIOです
関数の例は

puts:文字列を出力する

WindowsにElixirを導入するでも少し触ったやつです。

IO.puts(出力デバイス,なんとか)

という感じで使います。
出力デバイスはデフォルトで:stdioで、省略もできるらしい。
成功すると:okと出る

inspect:値を文字列に変換、出力する

名前とその値を結びつけるような関数
本書の例に則ると

iex(1)> ([1, 2, 3]
...(1)> |> IO.inspect(label: "before")
...(1)> |> Enum.map(&(&1 * 2))
...(1)> |> IO.inspect(label: "after")
...(1)> |> Enum.sum())

[1,2,3]という、数列に"before"という名前を付けて、それぞれ2倍して、その結果に"after"という名前を付け、最後にafterの中身をすべて足すというプログラムのようです。
余談ですが、パイプ演算子を見落としたせいでかなりつまずいていました。(質問により解決)

read:文字列を読み込む

inspectとは逆に、入力した文字列に名前を付ける関数
本書では、exsファイルを用いて

IO.puts "お名前を入力してください"
name = IO.read(:line)
IO.puts "Hello!, #(name)"

入力された文字列にnameという名前を付けて、Hello!するプログラムのようです。

Enum

Enumはコレクションを扱う関数。
Enumは日本語にすると"列挙"という意味のようです
関数の例は

map:各要素を変換する関数

inspectの説明でも使っていた関数です。
その時には、[1,2,3]というコレクションのそれぞれを2倍するのに使っていました。
このように、各要素それぞれに対してアクションを行う関数のようです

filter・reject:フィルタリングする

filterは指定された条件になるもの、rejectは指定された条件にならないものをフィルタリングします。
本書の例では、

Enum.filter ([1, 2, 3], fn x -> rem(x, 2) == 0 end)

これは2で割ったとき余りが0のものを[1,2,3]の中からフィルタリング
つまり偶数だけを出力するプログラムのようです

Enum.reject ([1, 2, 3], fn x -> rem(x, 2) == 0 end)

同様に、これは2で割ったとき余りが0にならない、つまり奇数だけを出力するプログラムのようです

all?・any?:条件を検証する

all?は条件がすべてに当てはまる場合にtrueを、一つでも当てはまらないとfalseを出力する関数
any?は、どれか一つに当てはまったらtrueを、一つも当てはまらないとfalseを出力する関数

min・max:最小・最大値を取得する

Excelとかにもあるやつですね。
リストの中から最小・最大を見つけ出してくれます。

reduce:畳み込みを行う

ファイルの圧縮と似た感じの関数です。
例えば

dog,cat,dog,dog,cat,dog,dog,dog,cat,cat,cat
みたいな列があるとき、下のような感じに変わります
dog:6,cat:6

おわりに

また途中で切ります
書き始めた当初はこんなに長くなるとは思いませんでした。
この後に出るであろう第三弾も読んでくださると幸いです。
間違いがあれば指摘してください。
つたない文章ですが、読了ありがとうございました。

2
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?