Elixirを掘り下げて深く知る会: Enum編

2021/08/30(月)19:30 〜 21:00 開催
ブックマーク

イベント内容

Elixirを掘り下げて深く知る会: Enum編

概要

これまでElixirの文法や機能について一通り触れてきました。
これからはElixirがどのように作られているのかという点にフォーカスしていこうと考えています。 先日、上達への道のりは「優秀な人が書いたソースコードを読む」ことだと拝見しました。
「そんなソースコード身近にあるかな?」と思った結果、ありました。Elixirです。Elixirのソースコードを読めばいいんじゃないでしょうか。
ただ、例の如く、1人で読み進めるには難易度が高そうだと感じました。そして、思い立って本会の開催に至りました。

Enumモジュールについて / 前座

Elixirを強力たらしめているのは何といってもEnumモジュールの存在です。
Enumモジュールとパイプライン演算子を組み合わせることでElixirらしいコードを記述することが出来ます。

1..100
|> Enum.to_list()
|> Enum.filter(fn n -> n < 50 end)
|> Enum.map(fn n -> n + 1 end)
|> Enum.sum()
|> IO.puts()

さて、このEnumモジュールですが、Elixirにおけるデータ構造のリスト(List)、マップ(Map)、レンジ(Range)の3つに対応しています。

In Elixir, an enumerable is any data type that implements the Enumerable protocol.  
Lists ([1, 2, 3]), Maps (%{foo: 1, bar: 2}) and Ranges (1..3) are common data types used as enumerables:

ref: https://hexdocs.pm/elixir/1.12/Enum.html

Enumモジュールに定義されている関数の第1引数に上記3つの内、好きなデータ構造を渡すことが出来ます。
3つのデータ構造にどのように対応しているのでしょうか。パターンマッチなどを用いて3パターン実装しているのでしょうか。

このような疑問を掘り下げていきましょう⛏⛏⛏

枠について

今回は枠を3つ用意させて頂きました。お好きな枠をお選びいただければと思います。

先生枠

「Elixirのことなら任せて」というまさにElixir先生のような方に参加して頂きたい枠になります。
質問への積極的な回答やOKBが困ったときにサポートして頂けると大変、助かります。

一緒に悩む枠

「Elixir経験者だけど、人に教えられるかな」という方のための枠です。OKBもこの枠で参加します。
疑問点があれば質問をガンガンして頂けると大変、助かります。回答もウェルカムです。

観覧枠

Elixirは初めて、勉強会の雰囲気を感じてみたいという方のための枠です。
基本的にはマイクOFFで観覧という形で参加して頂く形になります。質問あればぜひお願いします。

参加にあたって

清流elixirは「共に強くなる」をコンセプトに活動しています。よって以下のような行動は控えて下さい。

  • 他の方へのマウンティング
  • 圧のあるもしくは悪意のある質問や回答
  • 他の方を下に見るような言動や発言

上記のような行動がみられた場合に注意、最悪の場合に勉強会から退出して頂きますのでご注意下さい。
また無許可で他の方の顔が映るような写真、動画を使用するのはお控え下さい。使用したい方は事前に皆様に確認をお願い致します。

タイムスケジュール

  • 19:30 ~ 19:40 => お互いの自己紹介
  • 19:40 ~ 20:45 => Enumへの掘り下げタイム⛏
  • 20:45 ~ 21:00 => まとめ / クロージング

メッセージのやり取りについて

勉強会進行中の通話はDiscordをメインに使用しますが、メッセージのやりとりに関しては記録を残すためにslackでのやりとりをお願い致します。

https://elixirjp.slack.com/?redir=%2Farchives%2FCPT39LF40%2Fp1587551427000200

環境構築について

OS問いませんが、elixirのプロンプト(iex)が起動するところまで完了しているものと想定しております
インストール方法につきましてはelixir-lang公式サイトよりご確認下さい
今回扱う内容ではlocal環境での実行が必要となります

ブラウザ上でElixirを実行できる環境も御座いますのでこちらだけでもOKです -> Paiza

注意事項

※ こちらのイベント情報は、外部サイトから取得した情報を掲載しています。
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。

関連するイベント