More Related Content
PDF
PDF
PDF
PDF
PDF
PDF
KEY
PPTX
What's hot
PDF
姫路IT系勉強会 Vol.11 第0回L-1グランプリ bash PDF
PPTX
KEY
PDF
PDF
PDF
PDF
PDF
Rubyにおける構文追加の試み 〜ボクとRubyと俺々文法〜 PDF
PDF
これからの「言語」の話をしよう ―― 未来を生きるためのツール PDF
PDF
ODP
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜 KEY
KEY
PDF
PDF
お前は PHP の歴史的な理由の数を覚えているのか PDF
Viewers also liked
PDF
PDF
PDF
PDF
PDF
Portadas nacionales 8 marzo-17 PDF
PDF
Loyalty Presentation - CM Forum April 15 PDF
Frontera de Posibilidades de Producción PDF
Cuadro comparativo Corrientes Económicas PDF
Iba bangalore 2017 prospectus PPTX
PPTX
PDF
HOST | SPEAKER | Leonardo (Leo) Meyer @leomeyer PPTX
VoIP-Qualität im Netzwerk PPTX
Peter Opsvik's Philosophy of Sitting PPTX
Jak poprawić scoring BIK, zadbać o wiarygodność i zaoszczędzić na kredycie PDF
PDF
March 2017 Calendar of Events Similar to Elixirだ 第1回強化版 前半
PDF
(Ruby使いのための)Scalaで学ぶ関数型プログラミング PDF
PDF
PDF
PDF
PDF
PDF
KEY
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜 PDF
PPTX
PDF
PPTX
ODP
PDF
Lisp tutorial for Pythonista : Day 2 KEY
サイボウズ・ラボユース 最終成果報告会プレゼンテーション PDF
PDF
PDF
PPTX
PDF
More from Joe_noh
PDF
パフォーマンス改善のためにやったこと・やらなかったこと PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
PDF
Declaimerっていうやつつくった(つくってる) ODP
PDF
ODP
PDF
PDF
Elixirだ 第1回強化版 前半
- 1.
第1回 - 基礎だ1 -
GMO Pepabo, Inc.
Joe Honzawa
2015/5/13 Elixir勉強会
Elixirだ
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
型など
> integer
> float
>atom
> boolean
> binary
> string
> list
> tuple
> map
> range
> function
> keyword list
など
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
Binary
> <<1>>
> <<256>>== <<0>>
> <<1>> == <<1::size(8)>>
> <<1, 0>> == <<256::size(16)>>
> <<1::float>> ==
<<63,240,0,0,0,0,0,0>>
- 16.
- 17.
List
> 単方向リスト
> [1,2, 3]
> [true, [1, 2, 3], “hey”]
> [1 | [2, 3]] == [1, 2, 3]
> [1, 2 | []] == [1, 2]
> 先頭への要素追加は高速
- 18.
- 19.
Map
> %{}
> %{“price”=>3980}
> map = %{price: 100, amount: 2}
> map.price
> Map.get(map, :price)
> map = Map.put(map, :amount, 1)
- 20.
- 21.
Function
> 無名関数
> fn(x, y) -> x * y end
> fun = &(&1 * &2) # キャプチャ記法
> fun.(3, 4) == 12 # call
> 定義済み関数のキャプチャ
> IOモジュールのputs関数(arity: 1)
> Enum.each([1, 2], &IO.puts/1)
- 22.
Keyword List
> {key,val}なタプルのリスト
> kw = [{:age, 3}, … ]
> mapっぽく書いてよい
> kw == [age: 3, … ]
> Keyword.get(kw, :age) == 3
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
def
defmodule MyModule do
defprint(arg) do
iikanjini_hyoji(arg)
end
defp iikanjini_hyoji(arg) do
IO.inspect arg
end
end
MyModule.print %{price: 298}
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
使用
user = %User{}
user= %User{name: "jack"} # 作成
user.name
Map.get(user, :name) # 値の取得
# パターンマッチと更新
def hbd(user = %User{age: age}) do
%User{user | age: age+1}
end
- 46.
- 47.
- 48.
- 49.
賢く束縛
> [x, y]= [1, 2]
> x == 1
> y == 2
> {1, x, 3} = {1, 2, 3}
> x == 2
- 50.
- 51.
代表的な
> {:ok, res}= File.read “a.txt”
> [head | tail] = [1, 2, 3, 4]
> head == 1
> tail == [2, 3, 4]
- 52.
- 53.
- 54.
ピン止め
> x =1
> [x, y, 3] = [2, 2, 3]
> x == 2, y == 2
> [^x, y, 3] = [2, 2, 3]
> MatchError
↑
再束縛されちゃってる
- 55.
- 56.
- 57.
- 58.
ガードで使える奴ら
> ==
> !=
>===
> !==
> >
> <
> <=
> >=
> and
> or
> not
> !
> +
> -
> *
> /
> <> (左辺がリテラル)
> ++ (左辺がリテラル)
> in
> is_atom/1
> is_binary/1
> is_bitstring/1
> is_boolean/1
> is_float/1
> is_function/1
> is_function/2
> is_integer/1
> is_list/1
> is_map/1
> is_nil/1
> is_number/1
> is_pid/1
> is_port/1
> is_reference/1
> is_tuple/1
> abs/1
> bit_size/1
> byte_size/1
> div/2
> elem2
> hd/1
> length/1
> map_size/1
> node/0
> node/1
> rem/2
> round/1
> self/0
> tl/1
> trunc/1
> tuple_size/1
- 59.
- 60.