SlideShare a Scribd company logo
1 of 40
Erlang 入門 括弧が要らない! Windowsでも楽ちん! 並行プログラミングもOK! 英語OKなら何気に資料も多いぞ! ・・・そんな関数型言語 Erlang にIT土方系PHPerが果敢にも挑戦している最中です。 id:msakamoto-sf 坂本 昌彦 [email_address]
最初に 場所を提供していただきました 株式会社  EC ナビ様 ありがとう御座います! ヽ (´ ー `) ノ
Erlangって? ,[object Object],[object Object],[object Object],[object Object],[object Object]
「あーらん」? ,[object Object],[object Object],[object Object],[object Object]
知名度UPのきっかけ。 ,[object Object],[object Object],[object Object],[object Object]
なぜLisp/Schemeじゃないの? ,[object Object],[object Object],[object Object],[object Object],[object Object]
なぜErlang? ,[object Object],[object Object],[object Object],[object Object],[object Object]
PHPerのアナタにこそErlang(w ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Erlang/OTP ,[object Object],[object Object],[object Object],[object Object],[object Object]
Windows用のバイナリ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Erlangの世界(0) - ようこそ、Erlangの世界へ - ,[object Object]
"Hello, Erlang!" ,[object Object],-module(hello). -export([start/0]). start() -> io:format("Hello, Erlang!~n").
"Hello, Erlang!" ,[object Object],C:n_vitrorlang>erl Eshell V5.6.3  (abort with ^G) 1> c(hello) . {ok,hello} 2> hello:start(). Hello, Erlang! ok
"-module(hello)." ,[object Object],[object Object],[object Object]
"-export([start/0])." ,[object Object],[object Object],[object Object],[object Object]
start() ->  io:format("Hello, Erlang!~n"). ,[object Object],[object Object],[object Object],[object Object]
"c(hello)." ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
"hello:start()." ,[object Object]
Erlangの世界(1) ,[object Object]
変数名は大文字で始まる英数字 とアンダースコア("_") ,[object Object],C:n_vitrorlang>erl Eshell V5.6.3  (abort with ^G) 1> Var1 = 100. 100 2> Var1_2 = 200. 200 3> var2 = 300. ** exception error: no match of right hand side value 300 4> Var2-1 = 400. * 1: illegal pattern OK! NG!
変数への代入は 一度だけ ! ,[object Object],9> Var1 = 100. 100 10> Var1 = "ABCD". ** exception error: no match of right hand side value "ABCD" 11> b(). Var1 = 100 ok
「束縛」? ,[object Object],[object Object],11> b(). Var1 = 100 ok 12> f(). ok 13> Var1 = "ABCD". "ABCD"
Erlangの世界(2) ,[object Object]
C言語での列挙型。定数みたいな。 ,[object Object],[object Object],[object Object],[object Object],17> hello. hello 18> 'Friday Night'. 'Friday Night' 19> 'user_01@example.com'. 'user_01@example.com'
Erlangの世界(3) ,[object Object]
複数の変数をひとまとめにする単位 ,[object Object],[object Object],[object Object],[object Object],1> X = {1, "hello", world }. {1,"hello",world} 2> Y = { {orange, 100}, {apple, 300} }. {{orange,100},{apple,300}}
タプルの値の取得(1) ,[object Object],3> {V1, V2} = X. ** exception error: no match of right hand side value {1,"hello",world} 4> {V1, V2, V3} = X. {1,"hello",world} 5> V1. 1 6> V2. "hello" 7> V3. world
タプルの値の取得(2) ,[object Object],9> V1 = { apple, 100 }. {apple,100} 10> V2 = { orange, 200 }. {orange,200} 11> { apple, Price } = V1. {apple,100} 12> { orange, Price_orange } = V1. ** exception error: no match of right hand side value {apple,100} 13> { orange, Price_orange } = V2. {orange,200} 14> { Price, Price_orange }. {100,200}
Erlangの世界(4) ,[object Object]
いわゆる配列 ,[object Object],1> X = [1, "Hello", world, 2 + 3, { apple, 10 }, [ 4, 5, 6 ] ]. [1,"Hello",world,5,{apple,10},[4,5,6]]
いわゆる配列 ,[object Object],1> X = [1, "Hello", world, 2 + 3, { apple, 10 }, [ 4, 5, 6 ] ]. [1,"Hello",world,5,{apple,10},[4,5,6]]
値の取得(HeadとTail) ,[object Object],[object Object],[object Object],2> lists:nth(1, X). 1 3> [H | T] = X. [1,"Hello",world,5,{apple,10},[4,5,6]] 4> H. 1 5> T. ["Hello",world,5,{apple,10},[4,5,6]]
Erlangの世界(5) ,[object Object]
連想配列みたいな。 ,[object Object],[object Object],-record(person, {  %%  デフォルト値有り name = "anonymous",  %%  デフォルト値無し age,  weight  }).
レコードの作成・参照 ,[object Object],1> rr("records.hrl"). [person] 2> V1 = #person{}. #person{name = "anonymous",age = undefined, weight = undefined} 3> V2 = #person{ name = "Jon", age = 20, weight = 60 }. #person{name = "Jon",age = 20,weight = 60} 4> V3 = #person{ name = "Smith", age = 30, weight = 58 }. #person{name = "Smith",age = 30,weight = 58} 5> #person{ name = N, age = A, weight = W } = V3. #person{name = "Smith",age = 30,weight = 58} 6> [ N, A, W ]. ["Smith",30,58]
Erlangの世界(6) ,[object Object]
引数の数の異なる関数は区別される。 ,[object Object],-module(funtest1). -export([funtest/0, funtest/1, funtest/2]). funtest() -> -1. funtest(N) -> N * 2. funtest(N, M) -> N + M. -> 1> c(funtest1). {ok,funtest1} 2> { funtest1:funtest(), funtest1:funtest(10), funtest1:funtest(20, 30) }. {-1,20,50}
"ガード"による区別 ,[object Object],-module(funtest2). -export([fact/1]). fact(N) when N > 0 -> N * fact(N - 1); fact(0) -> 1. -> 1> c(funtest2). {ok,funtest2} 2> funtest2:fact(5). 120
fun() ,[object Object],1> Double = fun(X) -> X * 2. * 1: syntax error before: '.' 1> Double = fun(X) -> X * 2 end. #Fun<erl_eval.6.13229925> 2> L = [ 1, 2, 3, 4]. [1,2,3,4] 3> lists:map(Double, L). [2,4,6,8]
今回はここまで。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

More Related Content

What's hot

黒い目の大きな女の子:構文から意味へ
黒い目の大きな女の子:構文から意味へ黒い目の大きな女の子:構文から意味へ
黒い目の大きな女の子:構文から意味へHiroshi Nakagawa
 
機械翻訳の今昔物語
機械翻訳の今昔物語機械翻訳の今昔物語
機械翻訳の今昔物語Hiroshi Nakagawa
 
エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング道化師 堂華
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門bleis tift
 
JSX / Haxe / TypeScript
JSX / Haxe / TypeScriptJSX / Haxe / TypeScript
JSX / Haxe / TypeScriptbleis tift
 
変数、リファレンス
変数、リファレンス変数、リファレンス
変数、リファレンスcharsbar
 

What's hot (7)

黒い目の大きな女の子:構文から意味へ
黒い目の大きな女の子:構文から意味へ黒い目の大きな女の子:構文から意味へ
黒い目の大きな女の子:構文から意味へ
 
機械翻訳の今昔物語
機械翻訳の今昔物語機械翻訳の今昔物語
機械翻訳の今昔物語
 
C++0x総復習
C++0x総復習C++0x総復習
C++0x総復習
 
エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門
 
JSX / Haxe / TypeScript
JSX / Haxe / TypeScriptJSX / Haxe / TypeScript
JSX / Haxe / TypeScript
 
変数、リファレンス
変数、リファレンス変数、リファレンス
変数、リファレンス
 

Viewers also liked

Viewers also liked (7)

Pseudo Perl
Pseudo PerlPseudo Perl
Pseudo Perl
 
PHP With Windows binary
PHP With Windows binaryPHP With Windows binary
PHP With Windows binary
 
第2回PHP懇親会発表資料
第2回PHP懇親会発表資料第2回PHP懇親会発表資料
第2回PHP懇親会発表資料
 
Pseudo Block
Pseudo BlockPseudo Block
Pseudo Block
 
深い親子関係のテーブル設計
深い親子関係のテーブル設計深い親子関係のテーブル設計
深い親子関係のテーブル設計
 
PHP With Windows binary
PHP With Windows binaryPHP With Windows binary
PHP With Windows binary
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 

Similar to Introduction to Erlang/OTP

Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうEsehara Shigeo
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talkmitamex4u
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Ransui Iso
 
プログラミング講座 #2 複雑なデータの扱い
プログラミング講座 #2 複雑なデータの扱いプログラミング講座 #2 複雑なデータの扱い
プログラミング講座 #2 複雑なデータの扱いZOIdayo
 
ErlangでErlagVM上で動く言語の作り方
ErlangでErlagVM上で動く言語の作り方ErlangでErlagVM上で動く言語の作り方
ErlangでErlagVM上で動く言語の作り方osamu kimura
 
ZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるKoichi Suzuki
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)bleis tift
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Rubymitim
 
第一回ゆるふわーる
第一回ゆるふわーる第一回ゆるふわーる
第一回ゆるふわーるSachiko Hirata
 
鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門Hiroyoshi Komatsu
 
第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」Hiromu Shioya
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Akira Inoue
 
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているF#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているpocketberserker
 
20年越しで Perl 4 to 5 した話
20年越しで Perl 4 to 5 した話20年越しで Perl 4 to 5 した話
20年越しで Perl 4 to 5 した話outerinside
 
Symfony温泉2014 自己紹介LT
Symfony温泉2014 自己紹介LTSymfony温泉2014 自己紹介LT
Symfony温泉2014 自己紹介LTAkira Suenami
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)Masahiro Hayashi
 
ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】株式会社ランチェスター
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Ransui Iso
 
Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回Jun Ohtani
 

Similar to Introduction to Erlang/OTP (20)

Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 
プログラミング講座 #2 複雑なデータの扱い
プログラミング講座 #2 複雑なデータの扱いプログラミング講座 #2 複雑なデータの扱い
プログラミング講座 #2 複雑なデータの扱い
 
ErlangでErlagVM上で動く言語の作り方
ErlangでErlagVM上で動く言語の作り方ErlangでErlagVM上で動く言語の作り方
ErlangでErlagVM上で動く言語の作り方
 
ZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみるZFSのソースコードをチラ見してみる
ZFSのソースコードをチラ見してみる
 
F#の基礎(?)
F#の基礎(?)F#の基礎(?)
F#の基礎(?)
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 
第一回ゆるふわーる
第一回ゆるふわーる第一回ゆるふわーる
第一回ゆるふわーる
 
鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門鬱くしい日本語のための形態素解析入門
鬱くしい日本語のための形態素解析入門
 
第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」第1部「一時間で覚えるruby」
第1部「一時間で覚えるruby」
 
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
Angular ユーザーなら押さえておきたい! TypeScript と Visual Studio Code の基礎と活用
 
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているF#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
 
Perl io layer
Perl io layerPerl io layer
Perl io layer
 
20年越しで Perl 4 to 5 した話
20年越しで Perl 4 to 5 した話20年越しで Perl 4 to 5 した話
20年越しで Perl 4 to 5 した話
 
Symfony温泉2014 自己紹介LT
Symfony温泉2014 自己紹介LTSymfony温泉2014 自己紹介LT
Symfony温泉2014 自己紹介LT
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
 
ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】ちょっと詳しくJavaScript 第2回【関数と引数】
ちょっと詳しくJavaScript 第2回【関数と引数】
 
Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3Lisp Tutorial for Pythonista : Day 3
Lisp Tutorial for Pythonista : Day 3
 
Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回
 

Recently uploaded

5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一瑛一 西口
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayersToru Tamaki
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )iwashiira2ctf
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)keikoitakurag
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdfAyachika Kitazaki
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計atsushi061452
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521Satoshi Makita
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員Sadaomi Nishi
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑Akihiro Kadohata
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose EstimationToru Tamaki
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 

Recently uploaded (12)

5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
研究紹介スライド: オフライン強化学習に基づくロボティックスワームの制御器の設計
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 

Introduction to Erlang/OTP

  • 1. Erlang 入門 括弧が要らない! Windowsでも楽ちん! 並行プログラミングもOK! 英語OKなら何気に資料も多いぞ! ・・・そんな関数型言語 Erlang にIT土方系PHPerが果敢にも挑戦している最中です。 id:msakamoto-sf 坂本 昌彦 [email_address]
  • 2. 最初に 場所を提供していただきました 株式会社  EC ナビ様 ありがとう御座います! ヽ (´ ー `) ノ
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.