Breaking News
Home / 勉強会レポート / 【勉強会レポート】Elixirってどんな言語?Elixirを使ってFizzBuzzを解こう!の様子

【勉強会レポート】Elixirってどんな言語?Elixirを使ってFizzBuzzを解こう!の様子


14449044_636336903206071_8433563234841605190_n

1.勉強会の概要

GO言語以降、つまり2010年代に登場した言語を学んでいこうというafter GO勉強会。今回はElixir編ということで、Elixirを使ってFizzBuzz問題を解いていきました。

 

Elixirとは

Elixirは、Erlangというプログラミング言語をベースに2012年に作られた関数型言語です。並行処理を得意とし、耐障害性に優れています。

 

FizzBuzz問題とは

1から順に数を数えていき、3の倍数の時に’Fizz’、5の倍数の時に’Buzz’、15の倍数の時は’FizzBuzz’と表示する問題です。

 

 

2.勉強会のみどころ

なんといっても手続き型言語やオブジェクト指向型言語とは違うElixirならではの解き方がみどころです。一見単純そうに見えるFizzBuzz問題でどんな新しい発見があるのか、関数型言語初心者の人にとっては、わくわくドキドキだと思います。

 

 

3.勉強会でやったこと

最初に、Homebrewを使ってElixirのインストールを行っていきます。

 

インストールが完了したら、コマンドiexで対話型シェルを起動します。

すると、以下のような画面になります。

 

ここからは対話型シェルを使って、講師の方と一緒にElixirに触れていきます。

 

出力

最初は出力の仕方からです。出力はIO.puts()で行うようです。

 

関数

次は、Elixirの簡単な関数の作り方を学んでいきます。

これで、引数を3倍にして返す関数 xを作成することができました。

 

この記述法を応用すると以下のような関数を作ることができます。

Elixirでの「_」は、数値を無視する場合に使用するみたいです。

 

この関数yに対し、何パターンかの入力を行うと以下のようになります。

結果を見てもわかるように、関数の書き方を応用することでIf文のようなプログラミングを書くことができることを理解しました。

 

剰余

次にFizzBuzz問題を解くための剰余計算はremで行うことができます。

rem(a,b)とすると、aをbで割った余りを返すことができます。

 

FizzBuzz問題(初級編)

さて、これでFizzBuzzをする準備が整ったみたいです。

最初に以下のような関数zを作成します。

続いて、以下のような関数fizzbuzzを作成していきます。

これで、関数fizzbuzzの引数nに対し、FizzBuzzを判定することができるようになりました。

 

最後にfizzbuzz関数に対して1から100までの数値を渡し、出力していきます。

ついに!!!Elixirを使ってFizzBuzzをすることができました。

 

FizzBuzz問題(応用編)

Elixirの文法がわかったところで、ここからはさらに踏み込んだ内容で解いたElixirのコードを解説してくださいました。

以下がコードになります。

どうやら、3で割り切れるかどうかは各位の合計が3、6、9のいずれかかどうか、5で割り切れるかどうかは1の位が5かどうかでFizzBuzzの判定をしているようです。整数型と文字列型の扱いに要注意です。

 

他にも3進数と5進数を用いた判定を行うFizzBuzzや、カウンターを用いて1秒ごとにFizzBuzz判定を行うFizzBuzzなど、様々なアルゴリズムのFizzBuzzを紹介していただき、勉強会は終了しました。

 

 

4.勉強会の感想

私は今回、前から気になっていたTECH_SALONの勉強会に初めて参加させていただきました。いざ会場に入ってみるとフレンドリーな雰囲気の方々に迎えていただき、リラックスした状態で勉強会に臨むことができました。

Elixirは触れてみると思っていたより分かりやすく、オブジェクト指向型の言語で今まで解いてきたアルゴリズムをElixirで書くとどんなプログラムになるだろうといったように、想像を膨らませながら手を動かすことができました。

 

今回の勉強会で新しいElixirという言語を覚えたということだけでなく、FizzBuzz問題を通してアルゴリズムを考える楽しさを感じることができました。最近プログラミングなどの勉強をするときに環境開発などに時間をかけ、自分の頭で考えるということが少なくなっていたので、気分転換にもなり良い経験をすることができました。

またぜひTECH_SALONの勉強会に参加させていただきたいです。

 

 

5.企業の紹介

ーーーーーーーーーーーーーーー
freee株式会社とは
ーーーーーーーーーーーーーーー
「スモールビジネスに携わるすべての人が、創造的な活動にフォーカスできるよう」

freee はこのミッション達成のため、スモールビジネスの各成長段階をサポートするソリューションを提供しています。

具体的には、スモールビジネスの誕生(=会社設立)から日常業務のサポート(経理業務と会計ソフト)、
そして成長の支援(給与計算と従業員管理)を実施するソリューションを提供することで、
あらゆるスモールビジネスに携わる方々に大きな価値を提供しています。

コアとなるプロダクト「クラウド会計ソフトfreee(フリー)」は、
スモールビジネス向けクラウド会計ソフトのシェア No.1となり、
個人事業主から数百人規模の中小企業まで大きな価値を届けています。

グッドデザイン賞を始めとする数々の賞を受賞する傍ら、
シリコンバレーの有力ベンチャーキャピタルやシンガポールの政府系ファンドなど、
グローバルな有力投資家から高い評価を受け、2012年7月の創業以来、累計62億円以上の資金を調達しています。

企業 : https://www.freee.co.jp/company

採用 : https://jobs.freee.co.jp/

 


About TaichiKushiro

東京海洋大学海洋工学部流通情報工学科2年 システムエンジニア目指して勉強中です。

Check Also

14409886_633480843491677_4293997920847090099_o

【勉強会レポート】爆速でGo勉強会!!~Goの爆速フレームワークEchoを試して喜ぶ~の様子

TECH_SALONでは10月 …