- データを列ごとにまとめ直す
split_into_columns(rows, headers) - 各列の最大データ長を調べる
widths_of(data_by_columns) - データを出力する際のフォーマットを生成する
format_for(column_widths) - テーブルのヘッダ部分を出力する
puts_one_line_in_columns(headers, format) - ヘッダとデータ部分のセパレーター出力する
IO.puts(separator(column_widths) - データ部分を出力する
puts_in_columns(data_by_columns, format)
内包表記 与えられたコレクションに対して処理した結果が格納されたコレクションを作成する
Enum.map/2 全ての要素に関数を適用した結果をListにつめて返す。
Enum.max/1 処理した結果が最大の要素を返す
Enum.map_join/3 処理した結果を連結して返す
List.duplicate/2 指定したものを繰り返したListを返す
List.zip/1 指定されたListの、同じindexの要素を1つのtupleに詰めたListを返す
Tuple.to_list/1 TupleをListに変換する
Enum.each/2 各要素に関数を適用する
:io.format/2 指定されたフォーマットに従ってデータを出力する
> :io.format("~-10.8s", ["123456789012345"])
12345678 :ok
> :io.format("~10.8s", ["123456789012345"])
12345678:ok
> :io.format("~5.3s ~-5.3s", ["12", "12345"])
12 123 :ok
-
引数のない関数を呼び出す場合、()を付けないとWarningが表示される
-
以下のヒアドキュメントは末尾にスペースを入れて1行あたりの文字数をそろえている
c1 | c2 | c4 ------+--------+-------- r1 c2 | r1 c2 | r1+++c4 r2 c1 | r2 c2 | r2 c4 r3 c1 | r3 c2 | r3 c4
goh@goh% mix test
...........
Finished in 0.07 seconds
2 doctests, 9 tests, 0 failures
Randomized with seed 587636