Registration info |
先生枠 Free
FCFS
一緒に悩む枠 Free
FCFS
観覧枠 Free
FCFS
|
---|---|
参加者への情報 |
(参加者と発表者のみに公開されます)
|
Description
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:
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
Media View all Media
If you add event media, up to 3 items will be shown here.