機能改善 イベント資料の投稿において、SlideShareやSpeakerDeckと同様に、Docswellの資料を埋め込みスライド表示できるように対応いたしました。資料の投稿機能は、資料URLを指定するだけで、URLから取得した情報を、適した形でconnpass上で表示・共有できる機能です

このエントリーをはてなブックマークに追加

Aug

30

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

Enumってどうやって作られてるの?という疑問を解き明かす

Organizing : OKB

Hashtag :#清流elixir
Registration info

先生枠

Free

FCFS
1/2

一緒に悩む枠

Free

FCFS
6/8

観覧枠

Free

FCFS
10/10

参加者への情報
(参加者と発表者のみに公開されます)

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:

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

Media View all Media

If you add event media, up to 3 items will be shown here.

Feed

sing_mascle69

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

08/12/2021 10:05

Elixirを掘り下げて深く知る会: Enum編 を公開しました!

Group

清流elixir

ゼロから学ぶをコンセプトに東海地方(岐阜/愛知)で活動していきたいelixirの勉強会コミュニティ

Number of events 18

Members 53

Ended

2021/08/30(Mon)

19:30
21:00

You cannot RSVP if you are already participating in another event at the same date.

Registration Period
2021/08/12(Thu) 00:00 〜
2021/08/30(Mon) 20:30

Location

オンライン

Discordにて開催

Organizer

Attendees(17)

piacere

piacere

Elixirを掘り下げて深く知る会: Enum編 に参加を申し込みました!

kikuyuta

kikuyuta

I will join an online meetup of Elixirを掘り下げて深く知る会: Enum編 に参加を申し込みました!

takasehideki

takasehideki

Elixirを掘り下げて深く知る会: Enum編に参加を申し込みました!

古賀 祥造(koga1020)

古賀 祥造(koga1020)

Elixirを掘り下げて深く知る会: Enum編に参加を申し込みました!

Ka1t0_m

Ka1t0_m

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

pojiro

pojiro

Elixirを掘り下げて深く知る会: Enum編 に参加を申し込みました!

KanSAKAMOTO

KanSAKAMOTO

Elixirを掘り下げて深く知る会: Enum編 に参加を申し込みました!

kunioinventor

kunioinventor

Elixirを掘り下げて深く知る会: Enum編に参加を申し込みました!

nako

nako

Elixirを掘り下げて深く知る会: Enum編に参加を申し込みました!

dimanche

dimanche

Elixirを掘り下げて深く知る会: Enum編に参加を申し込みました!

Attendees (17)

Canceled (1)