Submit Search
Upload
ゆとり向けErlang入門 (1): メッセージパッシングことはじめ
•
8 likes
•
3,998 views
S
sleepy_yoshi
Follow
ゆとり向けErlang入門.メッセージパッシングに関する資料.
Read less
Read more
Technology
News & Politics
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 44
Download now
Download to read offline
Recommended
優れた研究提案書の書き方
優れた研究提案書の書き方
Masanori Kado
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
Megagon Labs
優れた研究論文の書き方
優れた研究論文の書き方
Masanori Kado
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
Yoichi Ochiai
研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有
Naoaki Okazaki
研究分野をサーベイする
研究分野をサーベイする
Takayuki Itoh
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案
Masanori Kado
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
Recommended
優れた研究提案書の書き方
優れた研究提案書の書き方
Masanori Kado
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
GiNZAで始める日本語依存構造解析 〜CaboCha, UDPipe, Stanford NLPとの比較〜
Megagon Labs
優れた研究論文の書き方
優れた研究論文の書き方
Masanori Kado
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
Yoichi Ochiai
研究室における研究・実装ノウハウの共有
研究室における研究・実装ノウハウの共有
Naoaki Okazaki
研究分野をサーベイする
研究分野をサーベイする
Takayuki Itoh
優れた研究論文の書き方―7つの提案
優れた研究論文の書き方―7つの提案
Masanori Kado
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
Surveyから始まる研究者への道 - Stand on the shoulders of giants -
Surveyから始まる研究者への道 - Stand on the shoulders of giants -
諒介 荒木
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
Yasunori Ozaki
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
画像キャプションの自動生成
画像キャプションの自動生成
Yoshitaka Ushiku
研究法(Claimとは)
研究法(Claimとは)
Jun Rekimoto
学振特別研究員になるために~2024年度申請版
学振特別研究員になるために~2024年度申請版
Masahito Ohue
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
研究発表のためのプレゼンテーション技術
研究発表のためのプレゼンテーション技術
Shinnosuke Takamichi
学振特別研究員になるために~知っておくべき10のTips~[平成28年度申請版]
学振特別研究員になるために~知っておくべき10のTips~[平成28年度申請版]
Masahito Ohue
adversarial training.pptx
adversarial training.pptx
ssuserc45ddf
目指せグラフマスター
目指せグラフマスター
HCPC: 北海道大学競技プログラミングサークル
fastTextの実装を見てみた
fastTextの実装を見てみた
Yoshihiko Shiraki
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
cvpaper. challenge
最急降下法
最急降下法
Akira Miyazawa
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
Kenshi Abe
優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)
cvpaper. challenge
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
Preferred Networks
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
Masashi Komori
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
cvpaper. challenge
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
sleepy_yoshi
KDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking Measures
sleepy_yoshi
More Related Content
What's hot
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
Surveyから始まる研究者への道 - Stand on the shoulders of giants -
Surveyから始まる研究者への道 - Stand on the shoulders of giants -
諒介 荒木
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
Yasunori Ozaki
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
画像キャプションの自動生成
画像キャプションの自動生成
Yoshitaka Ushiku
研究法(Claimとは)
研究法(Claimとは)
Jun Rekimoto
学振特別研究員になるために~2024年度申請版
学振特別研究員になるために~2024年度申請版
Masahito Ohue
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
Takuya Akiba
研究発表のためのプレゼンテーション技術
研究発表のためのプレゼンテーション技術
Shinnosuke Takamichi
学振特別研究員になるために~知っておくべき10のTips~[平成28年度申請版]
学振特別研究員になるために~知っておくべき10のTips~[平成28年度申請版]
Masahito Ohue
adversarial training.pptx
adversarial training.pptx
ssuserc45ddf
目指せグラフマスター
目指せグラフマスター
HCPC: 北海道大学競技プログラミングサークル
fastTextの実装を見てみた
fastTextの実装を見てみた
Yoshihiko Shiraki
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
cvpaper. challenge
最急降下法
最急降下法
Akira Miyazawa
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
Kenshi Abe
優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)
cvpaper. challenge
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
Preferred Networks
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
Masashi Komori
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
cvpaper. challenge
What's hot
(20)
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Surveyから始まる研究者への道 - Stand on the shoulders of giants -
Surveyから始まる研究者への道 - Stand on the shoulders of giants -
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
Statistical Semantic入門 ~分布仮説からword2vecまで~
Statistical Semantic入門 ~分布仮説からword2vecまで~
画像キャプションの自動生成
画像キャプションの自動生成
研究法(Claimとは)
研究法(Claimとは)
学振特別研究員になるために~2024年度申請版
学振特別研究員になるために~2024年度申請版
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
研究発表のためのプレゼンテーション技術
研究発表のためのプレゼンテーション技術
学振特別研究員になるために~知っておくべき10のTips~[平成28年度申請版]
学振特別研究員になるために~知っておくべき10のTips~[平成28年度申請版]
adversarial training.pptx
adversarial training.pptx
目指せグラフマスター
目指せグラフマスター
fastTextの実装を見てみた
fastTextの実装を見てみた
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
High-impact Papers in Computer Vision: 歴史を変えた/トレンドを創る論文
最急降下法
最急降下法
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
多人数不完全情報ゲームにおけるAI ~ポーカーと麻雀を例として~
優れた問いを見つける(中京大学講演)
優れた問いを見つける(中京大学講演)
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
ゼロから始める深層強化学習(NLP2018講演資料)/ Introduction of Deep Reinforcement Learning
社会心理学者のための時系列分析入門_小森
社会心理学者のための時系列分析入門_小森
cvpaper.challenge 研究効率化 Tips
cvpaper.challenge 研究効率化 Tips
More from sleepy_yoshi
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
sleepy_yoshi
KDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking Measures
sleepy_yoshi
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじ
sleepy_yoshi
PRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじ
sleepy_yoshi
PRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじ
sleepy_yoshi
PRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじ
sleepy_yoshi
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic models
sleepy_yoshi
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
sleepy_yoshi
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
sleepy_yoshi
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじ
sleepy_yoshi
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
sleepy_yoshi
PRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじ
sleepy_yoshi
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5
sleepy_yoshi
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
sleepy_yoshi
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじ
sleepy_yoshi
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじ
sleepy_yoshi
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Rank
sleepy_yoshi
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
sleepy_yoshi
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
sleepy_yoshi
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
sleepy_yoshi
More from sleepy_yoshi
(20)
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking Measures
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじ
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic models
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじ
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
PRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじ
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Rank
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
Recently uploaded
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Recently uploaded
(12)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
ゆとり向けErlang入門 (1): メッセージパッシングことはじめ
1.
ゆとり向けErlang入門 (1): メッセージパッシングことはじめ
2010-03-02 id:sleepy_yoshi (SUHARA YOSHIHIKO)
2.
なんぞこれ? • ゆとり向けErlang入門 –
今回はメッセージパッシングの解説 • 対象読者 – 基本的なErlang が 可能であること – ゆとりという自覚があること – 5分間の学習時間に耐える覚悟があること STOP! 上記に当てはまらない方は ここで読むのをおやめください 1
3.
10秒で学ぶ メッセージパッシング
2
4.
Erlangではたくさんの プロセスが
に く 3
5.
各プロセスは 自分のポストを持つ
4
6.
プロセス間の通信は メッセージで われる プロセス間のメッセージ = 手紙
5
7.
すなわち
6
8.
プロセス間の通信は 手紙の送受信で われる
ある ある プロセス プロセス 7
9.
10秒で学ぶ メッセージパッシング
(終) 8
10.
(一言でいうと) メッセージパッシング
は だ! 9
11.
メッセージパッシングの れ
(2) ポスト (1) 手紙を に入る 発送 hello Pid1 Pid2 receive Pid2 ! hello. (3) 開封する Msg -> Msg end. 10
12.
Erlangシェルで確認 (1/2) • シェルのプロセスIDを知る:
self() • プロセスIDの指定方法: pid(x,x,x) – 自分に送信するのでself()でも い • メッセージを送信: <pid> ! <message> > self(). pid(0,31,0) ! hello <0.31.0> の値であり, > pid(0,31,0) ! hoge. 受信メッセージ ではないことに注意 hoge > pid(0,31,0) ! fuga. fuga > pid(0,31,0) ! piyo. piyo 11
13.
Erlangシェルで確認 (2/2) • メッセージの確認
– (1) receiveを使う – (2) flush()でダンプ > receive Msg -> Msg end. hoge > flush(). Shell got fuga Shell got piyo ok > 12
14.
イメージ図1: 手紙の送信 • 自分自身
(シェルプロセス) へ手紙を3通送信 シェル piyo piyo プロセス fuga fuga hoge hoge 13
15.
イメージ図2: 手紙の開封
last (2) flush()でダンプ piyo piyo シェルプロセス fuga fuga (1) receive文で一通開封 > receive hoge hoge Msg -> Msg end. first hoge 14
16.
自分 (シェル) 以外にも メッセージを送りたい!
15
17.
でもプロセスの作り方が わからない...
16
18.
そこで!
17
19.
5秒で学ぶ プロセスの作り方
18
20.
プロセスID
を返す spawn(モジュール名, 関数名, [引数,...]) 19
21.
spawn
20
22.
5秒で学ぶ プロセスの作り方
(終) 21
23.
プロセスの作り方 • spawn(モジュール名, 関数名,
[引数,...]) ソースコード Erlangシェル -module(yutori). 1> Pid = spawn(yutori, -compile(export_all). loop,[]). <0,38,0> loop () -> 2> Pid ! hello. receive olleh Msg -> olleh, 3> loop() end. 22
24.
プロセスの確認方法 • i() で生成したプロセスを確認できる
(先ほどの続き) 3> i(). ... <0.38.0> yutori:loop/0 233 3 0 yutori:loop/0 0 ... 23
25.
解説: loop() • 末尾再帰によってreceive文を
も -module(yutori). -compile(export_all). メッセージの開封後 loop () -> 再びloop()開始 receive Msg -> olleh, loop() end. 24
26.
解説: シェルプロセス • spawnによってプロセス生成
– PidにプロセスID保持 • 生成したプロセスにメッセージ送信 • プロセスからの返り値を受け取る 1> Pid = spawn(yutori,loop,[]). <0,38,0> 2> Pid ! hello. olleh 3> 25
27.
プロセスの生成はspawn
26
28.
プロセスの生成
(終) 27
29.
メッセージパッシングに
戻ります 28
30.
receive文の 基本ルール
29
31.
先に到着した手紙からチェック (1/3)
last piyo piyo > receive fuga fuga Msg -> Msg end. hoge hoge first hoge 30
32.
先に到着した手紙からチェック (2/3)
last piyo piyo > receive fuga fuga Msg -> Msg end. first fuga 31
33.
先に到着した手紙からチェック (3/3)
last piyo piyo > receive Msg -> Msg end. first piyo 32
34.
receive文が パターンマッチに 失敗する場合
33
35.
マッチする手紙がある場合 • マッチする手紙まで飛ばす
last piyo piyo > receive fuga -> aguf end. fuga fuga hoge hoge first aguf 34
36.
マッチする手紙がない場合 • マッチする手紙が無い場合待ち続ける
last piyo > receive piyo fuga -> agug end. hoge hoge first 永遠に待ち続けないためのタイムアウト設定 ⇒ afterキーワード 35
37.
手紙の返事を返したい!
36
38.
返事を書くためには?
返信先 (Pid1) の • 返信先を知る必要がある ことを知ってい る必要がある Pid1 Pid2 (方法1) あらかじめPid1のことを知っておく (方法2) 手紙に返信先を書いてもらう 37
39.
(方法1) あらかじめ返信先を知る • こんな感じで関数への引数として保持しておく
loop(From)-> receive Msg -> From ! olleh, loop(From) end. • spawnする際に引数で返信先を与える – : spawn(yutori,loop,[self()]). 返信先が 定されている場合に 38
40.
(方法2) 手紙に返信先を書いてもらう • メッセージに自プロセスIDを記述
– : Pid2 ! {self(), hello}. loop()-> receive {From,Msg} -> From ! olleh, loop() end. こんな感じで受け取る プロセス毎に返信可能 39
41.
まとめ
40
42.
学んだこと • メッセージの送信方法: ! •
メッセージの開封方法: receive – パターンマッチによる開封順序の違い • プロセスの作り方: spawn – 末尾再帰によるメッセージ待機 – メッセージの返信方法 • Erlangシェルの使い方 – pid(), flush(), i() 41
43.
習 • プログラミングErlang8
プログラミング この の1,000倍ためになります 42
44.
おしまい
43
Download now