$\huge{元氣ですかーーーーッ!!!}$
はじめに
闘魂とElixirが出会いました。
闘魂 meets Elixir.です。
Elixir meets 闘魂.でもよいです。
本日は、Map.replace/3を説明します。
iex> "Elixir" |> String.graphemes() |> Enum.frequencies()
%{"E" => 1, "i" => 2, "l" => 1, "r" => 1, "x" => 1}
Map.replace/3
マップから指定したキーが存在する場合に、値を置き換えたマップが得られます。
マップとはキーと値のアレです。はてな? の方は、「闘魂Elixir ── 11. Mapモジュール」をご覧になってください。
こちらの図1をみてください。
IExで確かめてみましょう。
iex
IExが立ち上がったら、以下のプログラムを実行してみてください。
iex> Map.replace(%{a: 1, b: 2}, :a, "123da-")
%{a: "123da-", b: 2}
マップの中のキー:a
の値が、"123da-"
に変わったマップが得られました
ワンポイントレッスン
ワンポイントレッスンです。
元のマップが変更されているわけではない
iex> m = %{a: 1, b: 2}
%{a: 1, b: 2}
iex> Map.replace(m, :a, "123da-")
%{a: "123da-", b: 2}
Map.replace/3を実行したあと、m
は変更されていません。
iex> m
%{a: 1, b: 2}
ね、変わっていませんよね。
専門家の間では、イミュータブルと呼ばれます。
指定したキーが存在しない場合は、インプットと同じ内容のマップが返る
iex> Map.replace(%{a: 1, b: 2}, :inoki, "123da-")
%{a: 1, b: 2}
今日の闘魂
今日は、王陽明先生から言葉を引きます。
山中の賊を破るは易く心中の賊を破るは難し
解説は、こちらをご参照ください。
猪木さん流に言うと、「闘魂」ということです。
闘魂とは、「己に打ち克ち、闘いを通じて己の魂を磨いていくことである」
相手と闘う前に、まずは恐怖心に打ち克ち、自分自身との闘いに勝たなければならない。己に勝てなければ相手に勝つことはできない。
『アントニオ猪木 最後の闘魂』から引きました。
みなさまもぜひこの本をお手にとられて、猪木さんが残されたメッセージを通じて、直接猪木さんから「元氣」をもらってください。
さいごに
Map.replace/3を説明しました。
闘魂の意味は、 「己に打ち克ち、闘いを通じて己の魂を磨いていくことである」 との猪木さんの言葉をそのまま胸に刻み込んでいます。
知っているだけで終わらせることなく、実行する、断行する、一歩を踏み出すことを自らの行動で示していきたいとおもいます。
$\huge{1、2、3 ぁっダー!}$
Elixir Advent Calendar 2の13日目は、毎度お馴染み @torifukukaiou さんで、、Mapモジュールの続き、Map .replaceです😌https://t.co/5Qvd35Qr4h
— piacere (love Elixir, Gravity and VR/AR/Metaverse) (@piacere_ex) December 13, 2022
「元のマップが変更されているわけではない」、そう、これこそElixirや、イミュータブルを理解する上で、もっとも大事なこと😋 pic.twitter.com/506kf9bhuF
$\huge{元氣があればなんでもできる!}$
-
図は、https://excalidraw.com/ を使って作成しています。スゴ腕ハッカーが書いたかのような手書き風の絵が書けるので最近の私のお気に入りツールです。 ↩