客の目線ではなく自分の目線でモノをつくれ。
Advent Calendar 2022 31日目1の記事です。
I'm looking forward to 12/25,2022
私のAdvent Calendar 2022 一覧。
はじめに
Elixirを楽しんでいますか
Enum.zip_reduce/4、Enum.zip_reduce/3をご紹介します。
楽しんでみます。
1.12から追加された関数です。
elixirjp.slack.com の#beginners
チャンネルで以下の問題が検討されていました。
私も検討に参加しました。
Enumモジュールを眺めていて、Enum.zip_reduce/4、Enum.zip_reduce/3の存在を知りました。
さっそく楽しんでみます。
問題
- 2つのリストがあります
- それぞれのリストの長さは同じです
- 一方のリストのTrutyなインデックスに該当する値をもう一方のリストから取り出す
例です。
as = [true, false, true, 1, nil, true]
bs = ["sss", "bbb", "xxx", "hoge", "fuga", "foo"]
=> Expected: ["sss", "xxx", "hoge", "foo"]
Enum.zip_reduce/4 を使った解
Enum.zip_reduce(as, bs, [], fn a, b, acc ->
if a, do: [b | acc], else: acc
end)
|> Enum.reverse()
ちなみに、Enum.zip_reduce/3もあります。
Enum.zip_reduce([as, bs], [], fn [a, b], acc ->
if a, do: [b | acc], else: acc
end)
|> Enum.reverse()
Enum.filter/2、Enum.map/2を使う解
Enum.zip(as, bs)
|> Enum.filter(fn {a, _b} -> a end)
|> Enum.map(&elem(&1, 1))
zip_reduce/4 exists for convenience purposes.
と、ドキュメントに書いてあります。
こういうzip |> filter |> map
をしたいことってよくありそうですよね。
Wrapping up 



Enjoy Elixir
$\huge{Enjoy\ Elixir🚀}$
Enum.zip_reduce/4、Enum.zip_reduce/3を楽しんでみました。
zip |> filter |> map
したいときにおもいだしてください。
2022年に流行る技術予想 ーー それは、Elixir、Phoenix LiveViewです
Elixirの誕生日は、2012年5月24日です。
そのため、今年の2022年5月24日は10周年を迎えます。
iex> Date.diff(~D[2022-05-24], ~D[2022-01-31])
113
付録
以下、付録です。
そうそう!
2月24日発売予定のWEB+DB PRESSで、ElixirとPhoenixの特集がでますよ〜
次号のWEB+DB PRESSでElixirとPhoenix特集が出ます!お楽しみに!!1 pic.twitter.com/d4hIfhIfZ1
— 栗林健太郎 (@kentaro) January 18, 2022
Elixir
最後の最後に、Elixirについて紹介します。
- |>でスイスイ、プログラミングしていくことができる素敵なプログラミング言語です
- さっそくプログラムの例を示します
-
Qiita APIを使わせていただいて、
Elixir
タグがついた最新の記事を20件取得しています - ここでは雰囲気をつかんでいただければ大丈夫です
Mix.install [{:req, "~> 0.2.1"}]
"https://qiita.com/api/v2/items?query=tag:Elixir"
|> URI.encode()
|> Req.get!(finch_options: [pool_timeout: 50000, receive_timeout: 50000])
|> Map.get(:body)
|> Enum.map(& Map.take(&1, ["title", "url"]))
Webアプリケーションを楽しむなら
IoTを楽しむなら
AIを楽しむなら
もっとElixirのことを知りたい方へオススメの書籍
- プログラミングElixir(第2版) -- オーム社
- Elixir実践ガイド -- インプレス
- アルケミスト − 夢を旅した少年 -- KADOKAWA
コミュニティ
-
elixir.jp Slack workspaceに参加してみてください
- マヂ、やさしい人ばっかりのコミュニティ
- あなたの困ったをきっと解決してくれるでしょう
-
NervesJP Slack workspaceでは、NervesやIoTが好きな愉快なfolksたちがあなたの訪れを歓迎します
- たくさんのコミュニティがあります
(EDI/fukuoka.ex/kokura.ex & LiveView JP の @piacerex さん作)
Elixirコミュニティに初めて接する方は下記がオススメです
Elixirコミュニティ の歩き方 -国内オンライン編-
https://speakerdeck.com/elijo/elixirkomiyunitei-falsebu-kifang-guo-nei-onrainbian
(piyopiyo.ex & エリジョ の nakoさん(@nako_sleep_9h) 作、素敵な資料)
I organize autoracex.
And I belong to NervesJP, fukuoka.ex, EDI, tokyo.ex.
I hope someday you'll join us.
We Are The Alchemists, my friends!