LoginSignup
3
0

WEB+DB PRESS Elixir第1章やってみた

Last updated at Posted at 2024-04-03

はじめまして、Elixir教育事業部のこーへーです٩(ˊᗜˋ*)و

みなさん、Elixirという言語はご存知でしょうか?そういう僕も、2年前までは、知りませんでした。
というか、現在33歳なのですが、プログラミングをはじめたのも31歳とだいぶスタートが遅いです。そんな、31歳の時に奇跡的に出会った言語がElixirです。

Elixirに出会ったのかなどの経緯はいつか説明するとして、結論、Elixirはゲームみたいな感覚で超楽しい言語です。
お世辞にも僕は、プログラミングが得意ではありませんが、それでも楽しいと感じさせてくれるElixirはまさに女神。

プログラミングをはじめるのに遅いとか無い

と言うことで、30代からプログラミングをはじめても全く遅くないわけです。いや、なんなら80歳からはじめてシニア向けのアプリを独自開発したおばあちゃんがいるくらいです。何歳からチャレンジしても遅いなんてことはないわけです。

Elixir学習のすすめ

はい、ということで前置きはこれくらいにして、本題に入っていこうと思います。

実は、Elixir言語は海外では人気No.1,2に浮上しています。日本は海外の流れを必ずと言っていいほど受けるので、いずれ日本でElixirが隆盛をなすときもそう遠くはないはずです。

しかも、Elixirはいわゆるオブジェクト指向型言語より勉強コストが低いと言われているので現代最速で学べる言語と言っても過言ではないです。

さて、みなさん、準備はととのいましたか?
これからやっていくのはプログラムの基礎中の基礎をElixirで試してみるということです。

注意点は、なぜそうなるのか?というのは、マジで初学者の段階で深ぼってしまうとドツボにはまるので、今はこのプログラムを実行すると、こういう結果が返ってくるのね。ふむふむ。ぐらいの感じがいいかと思います٩(ˊᗜˋ*)و

今回使用する教科書は、WEB+DB PRESSのElixir特集第1章です。
こちら、一昨年の11月に発売されたのですが、下記リンクから購入も可能です。

整数1+1を実行

iex(1)> 1 + 1
2

List.to_tupleでリストをタプルに変換

iex(2)> List.to_tuple([1, 2, 3])
{1, 2, 3}

h関数でIOの使い方を表示

iex(3)> h(IO)
・
・
・
省略

_(アンダーバー)で桁を区切ることが可能、計算も可能

iex(4)> 1_000_000 + 1
1000001

16進数と10進数の計算が可能(全ての進数どうし計算可能)

iex(5)> 0.314e1 - 0.01
3.1300000000000003

整数2×3を実行

iex(6)> 2 * 3
6

整数10÷2を実行

iex(7)> 10 / 2
5.0

div関数(除算)を使い、10÷2を実行

iex(8)> div(10, 2)
5

rem関数(剰余)を使い、10÷3を実行、余りを出力

iex(9)> rem(10, 3)
1

論理演算trueを実行

iex(10)> true
true

論理演算falseとtrueを比較演算を用いて、比較

iex(11)> false == true
false

:をつけるとアトムと呼ばれる値になる。?は末尾にしかつけれられない制約がある

iex(12)> :how?
:how?

同じアトムの比較は常にtrueになる

iex(13)> :ok == :ok
true

文字列の表示

iex(14)> "Hello"
"Hello"

文字列どうしの連結

iex(15)> "Hello" <> "World"
"HelloWorld"

文字列補間を使った計算

iex(16)> "1 + 1 =#{1 + 1}"
"1 + 1 =2"

Elixirは文字のコードポイントを見るのに?を使う

iex(17)> ?あ
12354

同じ型のタプルの作成

iex(18)> {1, 2}
{1, 2}

違う方がのタプルの作成

iex(19)> {:ok, "OK"}
{:ok, "OK"}

同じ型のリストの作成

iex(20)> [1, 2]
[1, 2]

空のリスト作成

iex(21)> []
[]

リストを|で区切ることでheadとtailで区切ることができる。headに文字列のa、tailに空のリストを作成

iex(22)> ["a" | [] ]
["a"]

リストの中にリストを作り、それぞれをheadとtailで区切った実行結果

iex(23)> [1 | [2 | []] ]
[1, 2]

リスト連結の実行結果

iex(24)> [1, 2, 3] ++ [4, 5, 6]
[1, 2, 3, 4, 5, 6]

リストから指定した値を減算

iex(25)> [1, 2, 3] -- [2]
[1, 3]

in演算子を使い、1がリストに含まれているかをチェック

iex(26)> 1 in [1, 2, 3]
true

headに文字列型の値を既存のリストに追加

iex(27)> ["新規追加" | [1, 2] ]
["新規追加", 1, 2]

キーワードリストをタプルで作成

iex(28)> [{:a, 1}, {:b, "b"}] 
[a: 1, b: "b"]

キーワードリストの省略形。

iex(29)> [c: "22", b: "33"]
[c: "22", b: "33"]

マップの作成。同じマップ内に同じkeyを作ることはできない。

iex(30)> %{"key" => "value", :key => :value}
%{:key => :value, "key" => "value"}

マップの省略形

iex(31)> %{key: "value"} 
%{key: "value"}

colorにマップを束縛

iex(32)> color = %{:red => 0xff0000, blue: 0x0000ff}
%{red: 16711680, blue: 255}

colorから指定したkey:redのvalueを取得

iex(33)> color[:red]
16711680

colorから指定したkey:blueのvalueを取得

iex(34)> color.blue
255

まとめ

いかがでしたでしょうか?初学者の方は、このレベルでも何をやっているかわからないということもあると思います。
もちろんElixirを実行するための環境もPCにないといけませんし、その他にもいくつかソフトウェアを使うので、現段階でご自身のPCで試すのは難しいという方もいるかと思います。

ただ、安心してください。このシリーズでは、さらにレベルを落として解説する記事も作成していきます。さらに、無料のイベントも開催していく予定です。ちなみに第一回目は4/25(木)19:00~開催予定ですので、下記リンクからドシドシお申し込みください。

【参加条件】
・30歳以上
・プログラミングで稼いでいきたい意欲のある方

3
0
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
3
0