LoginSignup
4
1

探検Elixir: OTP 26のマップに関する不思議な冒険

Last updated at Posted at 2023-09-20

ChatGPT先生にたたき台をまず作ってもらって、推敲を重ね、正確性を期して投稿をしました。実験的な記事です。

AIが生成した内容は正確性を確かめよう」に従いました。

プロローグ: 魔法の舞台

私は、エンジニアとしての日々を魔法のような冒険と捉えています。
今回の冒険は、「不老不死の霊薬」を意味するElixirという素晴らしいプログラミング言語の舞台裏に潜む不思議な順序を視察する旅です。
魔法の舞台には、Elixir 1.15.5のOTP 26とOTP 25のバージョンが用意され、そこで奇妙な出来事が繰り広げられます。

マップは順不同なデータ構造です。

この記事ではDockerElixirのプログラム例を動かすことにします。

OTP = Open Telecom Platformのことで、Elixirの土台となっているErlangのことだと思ってもらって差し支えないと思います。

第一幕: OTP 26の不思議なマップ

OTP 26の舞台で、次の魔法の詠唱を行います。

docker run --rm -it hexpm/elixir:1.15.5-erlang-26.0.2-alpine-3.18.2 iex
---
iex> %{a: 1, b: 2, c: 3}
%{c: 3, a: 1, b: 2}

驚くことに、魔法が解けると :c:a の順序が入れ替わるのです。まるで魔法使いの手にかかったかのように、マップの順序が作成時と異なる順序で結果が出力されます。

第二幕: OTP 25の奇妙な演技

次に、OTP 25の世界へと足を踏み入れましょう。

docker run --rm -it hexpm/elixir:1.15.5-erlang-25.3.2.5-alpine-3.18.2 iex
---
iex> %{a: 1, b: 2, c: 3}
%{a: 1, b: 2, c: 3}

ここで奇妙なことに注目してください。舞台裏では、 :a:c が別の順序で登場します。
Elixirの魔法は、OTP 25と26の世界では微妙に違ったステップダンスを踊ります。

第三幕: Elixirの魅力の魔法

Elixirという素敵な世俗派関数型言語1でプログラミングを楽しみました。
その素敵具合は「Elixir Saves Pinterest $2 Million a Year In Server Costs」によく現れています。
開発者も経営者もこの事実に瞠目することでしょう。$2 Million/年の節約ですってよ!、奥さん。

大きく意訳をいれますが、「Elixirは、生産性の向上、柔軟性の確保、スケーラビリティの向上をもたらす言語であり、その全ての要因がコスト削減につながる可能性がある」というようなことが述べられています。

Elixirの魔法は、そのマップの微妙な変化に留まらず、エコシステム全体に広がっています。
私たちは、この魔法の舞台裏で不思議なことが起こることを楽しむ冒険者なのです。

エピローグ: 魔法の舞台の幕が下りる

魔法の舞台裏でのOTP 26とOTP 25の不思議なマップの冒険をお楽しみいただけましたでしょうか。
Elixirの魅力は、そのエレガントなシンタックス、耐障害性、スケーラビリティに溢れています。
そして、その魅力の一部が、このような奇妙な魔法の実験に宿っているのです。

私たちは、新しい技術の冒険に出発し、問題を解決し、魔法のような瞬間を楽しむ準備ができています。
Elixirの世界では、魔法がいつも微笑んで待っているのです。


ChatGPT先生にたたき台をまず作ってもらって、推敲を重ね、正確性を期して投稿をしました。実験的な記事です。

AIが生成した内容は正確性を確かめよう」に従いました。


さいごに

OTP 26とOTP 25では、マップを出力した際にキーの並び順が異なります。
Erlang/OTP 26 Highlights」に書いてある「Improvements of maps」が影響しているものと思われます。

それではごいっしょに!
「いやぁ、Qiitaって本当にいいもんですね~。それではまたご一緒に投稿を楽しみましょう」

  1. @kikuyuta 先生の「世俗派関数型言語 Elixir を関数型言語風に使ってみたらやっぱり関数型言語みたいだった」より。Elixirはコワくないですよ〜。

4
1
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
4
1