LoginSignup
17
0

More than 1 year has passed since last update.

$\huge{元氣ですかーーーーッ!!!}$

はじめに

闘魂とElixirが出会いました。
闘魂 meets Elixir.です。
Elixir meets 闘魂.でもよいです。

本日は、Enum.map/2を説明します。

iex> "Elixir" |> String.graphemes() |> Enum.frequencies()
%{"E" => 1, "i" => 2, "l" => 1, "r" => 1, "x" => 1}

Enum.map/2

Enumerableなものの要素ひとつひとつに関数を適用して、得られた結果が要素となるリストを作ることができます。
Input(元)のEnumerableなものの長さと、Enum.map/2を通して変換されたOutputのリストの長さは同じです。

「Enumerableなもの」がはてな? の方は、前日の記事「闘魂Elixir ── 06. Enumモジュール」を振り返ってくださいませ。

言葉にするとなんだか難しいかもしれませんが、こちらの図をみてください。

enum-map.png

上図の説明をします。1
整数1〜5の5個の要素からなる、[1,2,3,4,5]をInputにしています。
各要素に適用する関数は、f = fn x -> x * 2 endです。この関数はinputの値を2倍する関数です。
Enum.map([1,2,3,4,5], f)の実行結果は、[2, 4, 6, 8, 10]が得られます。

IExで確かめてみましょう。

CMD
iex

IExが立ち上がったら、以下のプログラムを実行してみてください。

iex> f = fn x -> x * 2 end

iex> Enum.map([1,2,3,4,5], f)
[2, 4, 6, 8, 10]

[1,2,3,4,5] => [2, 4, 6, 8, 10]の変換ができました:tada::tada::tada::tada::tada:

ワンポイントレッスン

ここでは、絵がごちゃごちゃするので、各要素に適用する関数をfという変数に束縛しました。
これは変数fを使わずに、以下のように書いても動きます。

iex> Enum.map([1,2,3,4,5], fn x -> x * 2 end)
[2, 4, 6, 8, 10]

そしてこちらの書き方のほうが圧倒的に多く使われるので、この書き方に慣れてください。
また、&を使って書くこともできます。

iex> Enum.map([1,2,3,4,5], & &1 * 2)
[2, 4, 6, 8, 10]

こちらもよく見かけるので慣れておくと吉です。
&の説明は以下をご参照ください。

今日の闘魂

今日は、『孟子』から言葉を引きます。


さざるなり、あたはざるにあらざるなり(孟子)

解説は、こちらをご参照ください。
猪木さん流に言うと、「危ぶむなかれ 危ぶめば道はなし 踏み出せばその一足が道となり その一足が道となる 迷わず行けよ 行けばわかるさ」ということです。

みなさまもぜひ猪木さんが残されたメッセージを通じて、直接猪木さんから「元氣」をもらってください。

image.png

さいごに

Enum.map/2を説明しました。

闘魂の意味は、 「己に打ち克ち、闘いを通じて己の魂を磨いていくことである」 との猪木さんの言葉をそのまま胸に刻み込んでいます。
知っているだけで終わらせることなく、実行する、断行する、一歩を踏み出すことを自らの行動で示していきたいとおもいます。

$\huge{1、2、3 ぁっダー!}$



Twitter


$\huge{元氣があればなんでもできる!}$

  1. 図は、https://excalidraw.com/ を使って作成しています。スゴ腕ハッカーが書いたかのような手書き風の絵が書けるので最近の私のお気に入りツールです。

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