$\huge{元氣ですかーーーーッ!!!}$
はじめに
闘魂とElixirが出会いました。
闘魂 meets Elixir.です。
Elixir meets 闘魂.でもよいです。
本日は、String.replaceを説明します。
iex> "Elixir" |> String.graphemes() |> Enum.frequencies()
%{"E" => 1, "i" => 2, "l" => 1, "r" => 1, "x" => 1}
String.replace
文字列を置き換えてくれます。
それでは、IExで確かめてみましょう。
iex
IExが立ち上がったら、以下のプログラムを実行してみてください。
四の五の言わずに動かしてみましょう。
公式の例がすごくいいのでそのまま貼っておきます。
第一引数の文字列の中で第ニ引数のパターンに合致する文字列を第三引数の文字列で置き換えます。
iex> String.replace("a,b,c", ",", "-")
"a-b-c"
第四引数には:global
オプションを渡せます。デフォルトはtrue
です。true
の場合は全部置き換えます。false
を指定した場合には最初だけ置き換えます。
iex> String.replace("a,b,c", ",", "-", global: false)
"a-b,c"
ね 、最初の ,
だけ -
に置き換わりました。
第四引数には:global
オプションにtrue
を指定してみます。
iex> String.replace("a,b,c", ",", "-", global: true)
"a-b-c"
最初の実行例と同じく,
をすべて-
に置き換えてくれました。
ワンポイントレッスン
第ニ引数には、文字列のリスト、正規表現、compiled patternを指定できます。
第三引数には、関数を指定することもできます。
公式ドキュメントをご参照ください。
以下、ちょっとお遊びです。
String.replace("hmnjh", ["h", "m", "n", "j"], fn <<char>> -> <<char + 1>> end)
"inoki"
"hmnjh"
=> "inoki"
の変換ができました。
猪木さんです
iex> String.replace("镝髇", ["镝", "髇"], fn <<char::utf8>> -> <<(char + 123)::utf8>> end)
"闘魂"
"镝髇"
はなにと読むのでしょう。実は、こんな言葉はありません。一文字ずつ調べると戦争(いくさ)に関係がある言葉のようです。
镝: 矢じり
髇: 鏑矢(かぶらや)。矢の一種。射放つと音が生じる。合戦の合図などに用いられた。
これら各文字に123
を足すとなんと"闘魂"
になるのです。
これは単なる偶然でしょうか。私にはそうはおもえません。天の配剤を感じます。
闘魂 と言えば、 燃える闘魂 アントニオ猪木さんです。猪木さんといえば、ご存知「1、2、3ダー!」です。
猪木さんは、 「私が長年夢であった 本当の プロレスを通じて スポーツを通じて 世界平和を 必ず実現します!(中略)おれたちは命がある 続くかぎり闘いぬきます!」 とおっしゃられています!
今日の闘魂
今日は、吉田松陰先生の言葉を紹介します。
才学を恃みて少成に安んずるは本藩の弊習なり。習は必ず風となる。
解説は、こちらをご参照ください。
猪木さん流に言うと、「絶好調のときこそ、あえて守りに入らず攻めの気持ちを忘れない」ということです。
『アントニオ猪木 最後の闘魂』より引用します。
守りに入るということは、現状維持でよしとすること。現状に満足していたら、いつか停滞期がやってきて、そして衰退につながる。そうならないためにも、常に攻めの姿勢を持ち続けていないといけないのだ。
一言で言うと、つまりは 闘魂 です。
「闘魂」とは、 「己に打ち克つこと。そして闘いを通じて己の魂を磨いていくことだとおもいます」 と猪木さんはおっしゃられています。
本能とも言うべきホメオスタシス(恒常性)の働きによりコンフォートゾーンからなかなか抜け出すことはできません。抜け出せないと成長はできません。
自分自身を叱咤激励して次の高みを目指す。挑戦を繰り返し続けることによってのみ人は成長できるのです。
遺伝子に組み込まれた「恒常性」を「向上性 」へと変革させるものは、 闘魂 なのです。人間をアップデートさせるものは、闘魂の二字を眼目にすることです。
みなさまもぜひこの本をお手にとられて、猪木さんが残されたメッセージを通じて、直接猪木さんから「元氣」をもらってください。
さいごに
String.replaceを説明しました。
闘魂の意味は、 「己に打ち克つこと。そして闘いを通じて己の魂を磨いていくこと」 との猪木さんの言葉をそのまま胸に刻み込んでいます。
知っているだけで終わらせることなく、実行する、断行する、一歩を踏み出すことを自らの行動で示していきたいとおもいます。
$\huge{1、2、3 ぁっダー!}$
Elixir Advent Calendar 3の20日目、ふたたび @torifukukaiou さんで、Stringモジュールの第四段、String .replaceです😋https://t.co/WZj15dytYX
— piacere (love Elixir, Gravity and VR/AR/Metaverse) (@piacere_ex) December 20, 2022
どの言語でも良く使われる文字列リプレイスですが、まさかString .replaceからの闘魂繋がりは想定外だった😅
$\huge{元氣があればなんでもできる!}$