14
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?

More than 1 year has passed since last update.

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

はじめに

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

本日は、Map.update/4を説明します。

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

Map.update/4

指定したキーで、マップの値を更新します。
マップとはキーと値のアレです。はてな? の方は、「闘魂Elixir ── 11. Mapモジュール」をご覧になってください。

値はキーが存在しないときの初期値と、キーが存在するときにどういう裁定をくだすのかを関数で指定できます。レフェリーです。私は、裁定(レフェリー)関数と呼んでいます。これは私が勝手にそう呼んでいるので、他では通用しません。

こちらの図1をみてください。

image.png

なかなか複雑ですね。説明します。
Map%{a: 1}に、キー:aの値を13で更新したいわけです。
キー:aはすでにMapの中にあるので、裁定(レフェリー)関数の出番です。ここでは元の値を2倍するという関数が指定されています。
13はどこにいっちゃったの? とお思いのかたがいらっしゃるかもしれません。なかったことにされます。そういうものなのです。13を結果に活かしたい場合には、「闘魂Elixir ── 14. Map.merge」を使いましょう。

説明はこのくらいにしておきます。
さっそく動かしてみましょう。

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

CMD
iex

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

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

iex> Map.update(%{a: 1}, :a, 13, f)
%{a: 2}

Map%{a: 1}から、%{a: 2}得られました :tada:

ワンポイントレッスン

リスト[:cat, :dog, :cat, :bird, :inoki, :dog, :cat]に含まれるアトムの数を数えます。
今回紹介したMap.update/4Enum.reduce/3を組み合わせると実現できます。

iex> ( [:cat, :dog, :cat, :bird, :inoki, :dog, :cat]
|> Enum.reduce(%{}, fn a, acc -> Map.update(acc, a, 1, & &1 + 1) end) )
%{bird: 1, cat: 3, dog: 2, inoki: 1}

さらにいうと、Enum.frequencies/1を使うことで同じ結果を得ることができます。

今日の闘魂

今日は、『読史管見』から言葉を引きます。


人事じんじを尽くして天命を待つ

解説は、こちらをご参照ください。
猪木さん流に言うと、 「やることをきちんとやって、もっと自分にうぬぼれてみろよ」 ということです。

有名な「出る前に負けることを考える馬鹿いるかよ! 出て行けコラァ!」のシーンにつながるわけです。

そしてこの心構えは、サッカー日本代表の2022年ワールドカップでの活躍につながるわけです。
私は信じます。日本代表がワールドカップの頂点に立つことを。

「オレは世界で最強だ」という思いで突っ走ってきた。その自信の源となっていたのは、日々のたゆまぬトレーニングだった。私はプロフェッショナルとして、いついかなるときでも練習に関しては妥協したことがないと自信を持っていえる。(中略)もちろん、単に「うぬぼれ屋になれ」という意味じゃない。(中略)勝つためには努力が必要だ。きちんと努力しているならば、卑屈になるな、弱気になるな、自信を持て! もっと自分にうぬぼれて生きてみなよ。

:book:アントニオ猪木 最後の闘魂:book:から引きました。
みなさまもぜひこの本をお手にとられて、猪木さんが残されたメッセージを通じて、直接猪木さんから「元氣」をもらってください。

image.png

さいごに

Map.update/4を説明しました。

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

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



Twitter


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

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

14
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
14
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?