LoginSignup
14
1

「piyopiyo.ex #18&19:プログラミングElixir輪読会」でElixirの基礎を学んだ①

Last updated at Posted at 2023-12-02

こんにちは!
プログラミング未経験文系出身、Elixirの国に迷い込んだ?!見習いアルケミストのaliceと申します。
今回はpiyopiyo.ex #18で輪読会を開催して学んだElixirの基礎をまとめます。

目次

1.「piyopiyo.ex #18&19:プログラミングElixir輪読会」でElixirの基礎を学んだ①(本記事)
2.「piyopiyo.ex #18&19:プログラミングElixir輪読会」でElixirの基礎を学んだ②

「piyopiyo.ex #18&19:プログラミングElixir輪読会」を開催しました

私はLivebookを使用してのライブコーディングを担当していましたが、途中から皆様参加のモブプラミングになりましたw
活発な交流がなされるわちゃわちゃ感が楽しかったです。

こんな内容を学びました

4.2 値型

正規表現とその操作をする関数を学びました

Regex.run(~r{[aiueo]}, "catapillar")
["a"]
Regex.scan(~r{[aiueo]}, "catapillar")
[["a"], ["a"], ["i"], ["a"]]

4.4 コレクション型

タプルの要素を変数にバインド

{status, count, action} = {:ok, 42, "next"}
{:ok, 42, "next"}

リストの要素は実はタプル

[1, fred: 1, dave: 2] == [1, {:fred, 1}, {:dave, 2}]
true

タプルの要素は実はリストで囲われている

{1, fred: 1, dave: 2} == {1, [fred: 1, dave: 2]}
true

4.5 マップ

マップを定義して変数にバインド

words = %{"a" => "apple", "b" => "bubble", "c" => "cat"}
%{"a" => "apple", "b" => "bubble", "c" => "cat"}
words["a"]
"apple"

上記と同じ流れで、実務ではこんな感じでエラーハンドリングすると学びました。
(キーがタプル、値がアトムに変わっただけ)

responses = %{{:error, :enoent} => :fatal, {:error, :busy} => :retry}
%{{:error, :busy} => :retry, {:error, :enoent} => :fatal}
responses[{:error, :busy}]
:retry

この日は4章の途中で時間切れになってしまったので、次回に持ち越しになりました。

~Elixirの国のご案内~

↓Elixirって何ぞや?と思ったらこちらもどぞ。Elixirは先端のアレコレをだいたい全部できちゃいます:laughing::sparkles::sparkles:

↓ゼロからElixirを始めるなら「エリクサーチ」がおすすめ!私もエンジニア未経験から学習中です。

We Are The Alchemists, my friends!:bouquet:1
Elixirコミュニティは本当に優しくて温かい人たちばかり!
私が挫折せずにいられるのもこの恵まれた環境のおかげです。
まずは気軽にコミュニティを訪れてみてください。2

  1. @torifukukaiouさんのAwesomeな名言をお借りしました。Elixirコミュニティを一言で表すと、これに尽きます。

  2. @nako_sleep_9hさんの素敵なスライドをお借りしました。Elixirコミュニティはいろんな形で活動中!

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