Submit Search
Upload
Erlang
•
5 likes
•
2,385 views
HyeonSeok Choi
Follow
Erlang 기초 소개자료
Read less
Read more
Technology
Report
Share
Report
Share
1 of 27
Download now
Download to read offline
Recommended
Strings in Python
Strings in Python
nitamhaske
Introduction to python
Introduction to python
Marian Marinov
Python programing
Python programing
hamzagame
Python tutorial
Python tutorial
Andrei Tomoroga
Ry pyconjp2015 turtle
Ry pyconjp2015 turtle
Renyuan Lyu
Erlang bootstrap course
Erlang bootstrap course
Martin Logan
Strings in python
Strings in python
Prabhakaran V M
Python basics
Python basics
Manisha Gholve
Recommended
Strings in Python
Strings in Python
nitamhaske
Introduction to python
Introduction to python
Marian Marinov
Python programing
Python programing
hamzagame
Python tutorial
Python tutorial
Andrei Tomoroga
Ry pyconjp2015 turtle
Ry pyconjp2015 turtle
Renyuan Lyu
Erlang bootstrap course
Erlang bootstrap course
Martin Logan
Strings in python
Strings in python
Prabhakaran V M
Python basics
Python basics
Manisha Gholve
String in python use of split method
String in python use of split method
vikram mahendra
oop Lecture 17
oop Lecture 17
Anwar Ul Haq
Python Function
Python Function
Soba Arjun
Pydiomatic
Pydiomatic
rik0
String variable in php
String variable in php
chantholnet
Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)
Pedro Rodrigues
Diving deep into twig
Diving deep into twig
Matthias Noback
Class 5 - PHP Strings
Class 5 - PHP Strings
Ahmed Swilam
Python language data types
Python language data types
Hoang Nguyen
Introduction to the basics of Python programming (part 3)
Introduction to the basics of Python programming (part 3)
Pedro Rodrigues
Regular expressions and php
Regular expressions and php
David Stockton
Dynamic Semantics Specification and Interpreter Generation
Dynamic Semantics Specification and Interpreter Generation
Eelco Visser
Basics of Python programming (part 2)
Basics of Python programming (part 2)
Pedro Rodrigues
Learn python in 20 minutes
Learn python in 20 minutes
Sidharth Nadhan
Programming with Python
Programming with Python
Rasan Samarasinghe
3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib
웅식 전
Core C#
Core C#
Jussi Pohjolainen
Intoduction to php strings
Intoduction to php strings
baabtra.com - No. 1 supplier of quality freshers
DITEC - Programming with Java
DITEC - Programming with Java
Rasan Samarasinghe
Python strings
Python strings
Mohammed Sikander
Hadoop overview
Hadoop overview
HyeonSeok Choi
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
HyeonSeok Choi
More Related Content
What's hot
String in python use of split method
String in python use of split method
vikram mahendra
oop Lecture 17
oop Lecture 17
Anwar Ul Haq
Python Function
Python Function
Soba Arjun
Pydiomatic
Pydiomatic
rik0
String variable in php
String variable in php
chantholnet
Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)
Pedro Rodrigues
Diving deep into twig
Diving deep into twig
Matthias Noback
Class 5 - PHP Strings
Class 5 - PHP Strings
Ahmed Swilam
Python language data types
Python language data types
Hoang Nguyen
Introduction to the basics of Python programming (part 3)
Introduction to the basics of Python programming (part 3)
Pedro Rodrigues
Regular expressions and php
Regular expressions and php
David Stockton
Dynamic Semantics Specification and Interpreter Generation
Dynamic Semantics Specification and Interpreter Generation
Eelco Visser
Basics of Python programming (part 2)
Basics of Python programming (part 2)
Pedro Rodrigues
Learn python in 20 minutes
Learn python in 20 minutes
Sidharth Nadhan
Programming with Python
Programming with Python
Rasan Samarasinghe
3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib
웅식 전
Core C#
Core C#
Jussi Pohjolainen
Intoduction to php strings
Intoduction to php strings
baabtra.com - No. 1 supplier of quality freshers
DITEC - Programming with Java
DITEC - Programming with Java
Rasan Samarasinghe
Python strings
Python strings
Mohammed Sikander
What's hot
(20)
String in python use of split method
String in python use of split method
oop Lecture 17
oop Lecture 17
Python Function
Python Function
Pydiomatic
Pydiomatic
String variable in php
String variable in php
Introduction to the basics of Python programming (part 1)
Introduction to the basics of Python programming (part 1)
Diving deep into twig
Diving deep into twig
Class 5 - PHP Strings
Class 5 - PHP Strings
Python language data types
Python language data types
Introduction to the basics of Python programming (part 3)
Introduction to the basics of Python programming (part 3)
Regular expressions and php
Regular expressions and php
Dynamic Semantics Specification and Interpreter Generation
Dynamic Semantics Specification and Interpreter Generation
Basics of Python programming (part 2)
Basics of Python programming (part 2)
Learn python in 20 minutes
Learn python in 20 minutes
Programming with Python
Programming with Python
3 1. preprocessor, math, stdlib
3 1. preprocessor, math, stdlib
Core C#
Core C#
Intoduction to php strings
Intoduction to php strings
DITEC - Programming with Java
DITEC - Programming with Java
Python strings
Python strings
Viewers also liked
Hadoop overview
Hadoop overview
HyeonSeok Choi
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
HyeonSeok Choi
Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정
HyeonSeok Choi
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
HyeonSeok Choi
Apache hive
Apache hive
HyeonSeok Choi
Apache sqoop
Apache sqoop
HyeonSeok Choi
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
HyeonSeok Choi
수와숫자
수와숫자
Chanyoung Youn
미소의 힘 (Korean)
미소의 힘 (Korean)
Hitoshi Tsuchiyama
Good numbers
Good numbers
Jonghoon Park
0213인간관계개선을위한소통 박순임
0213인간관계개선을위한소통 박순임
Minsoo Jung
UX/UI의 이해와 도전
UX/UI의 이해와 도전
Billy Choi
언어적 감성 표현 수단
언어적 감성 표현 수단
cyberemotion
감성연구와 언어학적 방법론
감성연구와 언어학적 방법론
cyberemotion
2장. 의사소통과 언어 사용
2장. 의사소통과 언어 사용
kidoki
Anomy chat platform
Anomy chat platform
동철 박
사티어 빙산의사소통 방법론
사티어 빙산의사소통 방법론
Sangcheol Hwang
숫자 구분자 처리 (Digit group separators)
숫자 구분자 처리 (Digit group separators)
중선 곽
프로그래머로 사는 법 Ch14
프로그래머로 사는 법 Ch14
HyeonSeok Choi
자바 병렬 프로그래밍 ch9
자바 병렬 프로그래밍 ch9
HyeonSeok Choi
Viewers also liked
(20)
Hadoop overview
Hadoop overview
하둡완벽가이드 Ch9
하둡완벽가이드 Ch9
Java 초보자를 위한 hadoop 설정
Java 초보자를 위한 hadoop 설정
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
대용량아키텍처와성능튜닝 8장성능엔지니어링정의와범위
Apache hive
Apache hive
Apache sqoop
Apache sqoop
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
수와숫자
수와숫자
미소의 힘 (Korean)
미소의 힘 (Korean)
Good numbers
Good numbers
0213인간관계개선을위한소통 박순임
0213인간관계개선을위한소통 박순임
UX/UI의 이해와 도전
UX/UI의 이해와 도전
언어적 감성 표현 수단
언어적 감성 표현 수단
감성연구와 언어학적 방법론
감성연구와 언어학적 방법론
2장. 의사소통과 언어 사용
2장. 의사소통과 언어 사용
Anomy chat platform
Anomy chat platform
사티어 빙산의사소통 방법론
사티어 빙산의사소통 방법론
숫자 구분자 처리 (Digit group separators)
숫자 구분자 처리 (Digit group separators)
프로그래머로 사는 법 Ch14
프로그래머로 사는 법 Ch14
자바 병렬 프로그래밍 ch9
자바 병렬 프로그래밍 ch9
Similar to Erlang
Functional programming in ruby
Functional programming in ruby
Koen Handekyn
Power of functions in a typed world
Power of functions in a typed world
Debasish Ghosh
Prolog2 (1)
Prolog2 (1)
university of sargodha
Erlang session1
Erlang session1
mohamedsamyali
Effective Scala (JavaDay Riga 2013)
Effective Scala (JavaDay Riga 2013)
mircodotta
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
mohitesoham12
Matlab lec1
Matlab lec1
Amba Research
(How) can we benefit from adopting scala?
(How) can we benefit from adopting scala?
Tomasz Wrobel
Functionsandpigeonholeprinciple
Functionsandpigeonholeprinciple
Shiwani Gupta
Word2vec slide(lab seminar)
Word2vec slide(lab seminar)
Jinpyo Lee
Ejercicios de estilo en la programación
Ejercicios de estilo en la programación
Software Guru
The Logical Burrito - pattern matching, term rewriting and unification
The Logical Burrito - pattern matching, term rewriting and unification
Norman Richards
Scala: Functioneel programmeren in een object georiënteerde wereld
Scala: Functioneel programmeren in een object georiënteerde wereld
Werner Hofstra
Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?
UFPA
Useful javascript
Useful javascript
Lei Kang
Code Like Pythonista
Code Like Pythonista
Chiyoung Song
Getting started in Python presentation by Laban K
Getting started in Python presentation by Laban K
GDSCKYAMBOGO
Python Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard Way
Utkarsh Sengar
Data structure and algorithm using java
Data structure and algorithm using java
Narayan Sau
python beginner talk slide
python beginner talk slide
jonycse
Similar to Erlang
(20)
Functional programming in ruby
Functional programming in ruby
Power of functions in a typed world
Power of functions in a typed world
Prolog2 (1)
Prolog2 (1)
Erlang session1
Erlang session1
Effective Scala (JavaDay Riga 2013)
Effective Scala (JavaDay Riga 2013)
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
Matlab lec1
Matlab lec1
(How) can we benefit from adopting scala?
(How) can we benefit from adopting scala?
Functionsandpigeonholeprinciple
Functionsandpigeonholeprinciple
Word2vec slide(lab seminar)
Word2vec slide(lab seminar)
Ejercicios de estilo en la programación
Ejercicios de estilo en la programación
The Logical Burrito - pattern matching, term rewriting and unification
The Logical Burrito - pattern matching, term rewriting and unification
Scala: Functioneel programmeren in een object georiënteerde wereld
Scala: Functioneel programmeren in een object georiënteerde wereld
Porque aprender haskell me fez um programador python melhor?
Porque aprender haskell me fez um programador python melhor?
Useful javascript
Useful javascript
Code Like Pythonista
Code Like Pythonista
Getting started in Python presentation by Laban K
Getting started in Python presentation by Laban K
Python Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard Way
Data structure and algorithm using java
Data structure and algorithm using java
python beginner talk slide
python beginner talk slide
More from HyeonSeok Choi
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
HyeonSeok Choi
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2
HyeonSeok Choi
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2
HyeonSeok Choi
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04
HyeonSeok Choi
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04
HyeonSeok Choi
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
HyeonSeok Choi
함수적 사고 2장
함수적 사고 2장
HyeonSeok Choi
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성
HyeonSeok Choi
7가지 동시성 모델 4장
7가지 동시성 모델 4장
HyeonSeok Choi
Bounded Context
Bounded Context
HyeonSeok Choi
DDD Repository
DDD Repository
HyeonSeok Choi
DDD Start Ch#3
DDD Start Ch#3
HyeonSeok Choi
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
HyeonSeok Choi
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7
HyeonSeok Choi
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6
HyeonSeok Choi
실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1
HyeonSeok Choi
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장
HyeonSeok Choi
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장
HyeonSeok Choi
HTTPS
HTTPS
HyeonSeok Choi
HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.
HyeonSeok Choi
More from HyeonSeok Choi
(20)
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch2
밑바닥부터시작하는딥러닝 Ch2
프로그래머를위한선형대수학1.2
프로그래머를위한선형대수학1.2
알고리즘 중심의 머신러닝 가이드 Ch04
알고리즘 중심의 머신러닝 가이드 Ch04
딥러닝 제대로시작하기 Ch04
딥러닝 제대로시작하기 Ch04
밑바닥부터시작하는딥러닝 Ch05
밑바닥부터시작하는딥러닝 Ch05
함수적 사고 2장
함수적 사고 2장
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 - 데이터 병렬성
7가지 동시성 모델 4장
7가지 동시성 모델 4장
Bounded Context
Bounded Context
DDD Repository
DDD Repository
DDD Start Ch#3
DDD Start Ch#3
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch8
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch7
실무로 배우는 시스템 성능 최적화 Ch6
실무로 배우는 시스템 성능 최적화 Ch6
실무로배우는시스템성능최적화 Ch1
실무로배우는시스템성능최적화 Ch1
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장
HTTP 완벽가이드 16장
HTTP 완벽가이드 16장
HTTPS
HTTPS
HTTP 완벽가이드 6장.
HTTP 완벽가이드 6장.
Recently uploaded
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
Remote DBA Services
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Zilliz
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
MadyBayot
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Khushali Kathiriya
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Zilliz
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Orbitshub
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
rafiqahmad00786416
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
apidays
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Deepika Singh
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Orbitshub
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
apidays
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
DianaGray10
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Angeliki Cooney
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
jfdjdjcjdnsjd
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Christopher Logan Kennedy
Recently uploaded
(20)
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
presentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Erlang
1.
함수형
2.
언어
3.
Erlang
4.
기초 cecil
5.
Erlang이란? •동시성과
6.
안정성에
7.
강점을
8.
둔
9.
함수형
10.
언어
11.
•고장
12.
방지
13.
기능을
14.
갖추고
15.
동시에
16.
분산되어
17.
있는
18.
전신
19.
시스템
20.
개발을
21.
위 해
22.
1986년
23.
조
24.
암스트롱이
25.
개발함
26.
•1998년
27.
오픈소스로
28.
릴리즈가
29.
됨
30.
•이름의
31.
유래:
32.
덴마크의
33.
수학자
34.
Erlang,
35.
Ericsson
36.
Language
37.
Erlang의
38.
특징 함수형
39.
언어,
40.
동적
41.
타입
42.
언어
43.
변수의
44.
단일
45.
할당(?),
46.
할당
47.
대신
48.
패턴
49.
매칭
50.
지원
51.
스레드가
52.
없음,
53.
가벼운
54.
프로세스
55.
사용
56.
지원
57.
타입 •변수:
58.
대문자로
59.
시작.
60.
ex)
61.
Name
62.
•애텀(Atom):
63.
심볼릭
64.
상수.
65.
소문자로
66.
시작.
67.
ex)
68.
apple
69.
•튜플:
70.
정해진
71.
수의
72.
항목을
73.
가진
74.
그룹핑
75.
개체.
76.
ex)
77.
{apple,
78.
banana}
79.
•리스트:
80.
가변적인
81.
항목을
82.
가진
83.
개체.
84.
ex)
85.
[apple,
86.
banana]
87.
패턴
88.
매칭 •A
89.
=
90.
10.
91.
=
92.
A:
93.
10
94.
•{B,
95.
C,
96.
D}
97.
=
98.
{10,
99.
foo,
100.
bar}.
101.
=
102.
B:
103.
10,
104.
C:
105.
foo,
106.
D:
107.
bar
108.
•{A,
109.
A,
110.
B}
111.
=
112.
{abc,
113.
def,
114.
123}.
115.
=
116.
fail
117.
•{A,
118.
A,
119.
B}
120.
=
121.
{abc,
122.
abc,
123.
123}.
124.
=
125.
A:
126.
abc,
127.
B:
128.
123
129.
•[A,
130.
B,
131.
C]
132.
=
133.
[abc,
134.
def,
135.
123].
136.
=
137.
A:
138.
abc,
139.
B:
140.
def,
141.
C:
142.
123
143.
•[A,
144.
B,
145.
C]
146.
=
147.
[abc,
148.
def,
149.
123,
150.
456].
151.
=
152.
fail
153.
패턴
154.
매칭(cont’d) •[A,
155.
B|C]
156.
=
157.
[1,
158.
2,
159.
3,
160.
4,
161.
5].
162.
=
163.
A:1,
164.
B:2,
165.
C:
166.
[3,4,5]
167.
•[H|T]
168.
=
169.
[1,
170.
2,
171.
3,
172.
4,
173.
5].
174.
=
175.
H:
176.
1,
177.
T:
178.
[2,
179.
3,
180.
4,
181.
5]
182.
•[H|T]
183.
=
184.
[abc].
185.
=
186.
H:
187.
abc,
188.
T:
189.
[]
190.
•[H|T]
191.
=
192.
[].
193.
=
194.
fail
195.
•{A,
196.
_,
197.
[B|_],
198.
{B}}
199.
=
200.
{abc,
201.
23,
202.
[22,
203.
x],
204.
{22}
205.
}.
206.
207.
208.
209.
210.
211.
=
212.
A:
213.
abc,
214.
B:
215.
22
216.
함수 Function(Pattern1,
217.
Pattern2,
218.
...)
219.
-
220.
수행할
221.
문장
222.
;
223.
Function(Pattern1,
224.
Pattern2,
225.
...)
226.
-
227.
수행할
228.
문장
229.
;
230.
Function(Pattern1,
231.
Pattern2,
232.
...)
233.
-
234.
수행할
235.
문장. factorial(0)
236.
-
237.
1;
238.
factorial(N)
239.
-
240.
N
241.
*
242.
factorial(N-1). •함수는
243.
이름과
244.
인자의
245.
수로
246.
구분됨.
247.
•이름이
248.
같더라고
249.
인자의
250.
수(arity)가
251.
다르면
252.
다른
253.
함수
254.
•함수의
255.
문법
256.
구성 하나의
257.
함수
258.
함수
259.
(cont’d) fun(X)
260.
-
261.
수행할
262.
문장
263.
end. •fun
264.
키워드를
265.
사용하여
266.
익명
267.
함수를
268.
생성
269.
•익명
270.
함수를
271.
사용하여
272.
고차원
273.
함수
274.
작성
275.
가능
276.
(함수를
277.
인자로) •가드를
278.
사용한
279.
함수
280.
(조건)
281.
•패턴
282.
매칭
283.
+
284.
조건을
285.
사용하여
286.
수행할
287.
문장을
288.
결정
289.
max(X,
290.
Y)
291.
when
292.
X
293.
294.
Y
295.
-
296.
X;
297.
max(X,
298.
Y)
299.
-
300.
Y.
301.
함수
302.
(예제) for(Max,
303.
Max,
304.
F)
305.
-
306.
[F(Max)];
307.
for(I,
308.
Max,
309.
F)
310.
-
311.
[F(I)|
312.
for(I+1,
313.
Max,
314.
F)]. •평균을
315.
구하기 •고차원
316.
함수를
317.
이용한
318.
for문 average(X)
319.
-
320.
sum(X)
321.
/
322.
len(X).
323.
sum([H|T])
324.
-
325.
H
326.
+
327.
sum(T);
328.
sum([])
329.
-
330.
0.
331.
332.
len([_|T])
333.
-
334.
1
335.
+
336.
len(T);
337.
len([])
338.
-
339.
0.
340.
리스트
341.
해석(Comprehension) [X
342.
*
343.
2
344.
||
345.
X
346.
-
347.
Fibs].
348.
결과:
349.
[2,
350.
2,
351.
4,
352.
6,
353.
10]
354.
[X
355.
*
356.
2
357.
||
358.
X
359.
-
360.
Fibs,
361.
X
362.
363.
3].
364.
결과:
365.
[2,
366.
2,
367.
4] •모든
368.
함수형
369.
언어에서
370.
가장
371.
중요한
372.
개념은
373.
map •리스트
374.
해석은
375.
map을
376.
사용하지
377.
않고
378.
리스트를
379.
생성 Fibs
380.
=
381.
[1,
382.
1,
383.
2,
384.
3,
385.
5].
386.
Double
387.
=
388.
fun(X)
389.
-
390.
X
391.
*
392.
2
393.
end.
394.
lists:map(Double,
395.
Fibs).
396.
397.
결과:
398.
[2,
399.
2,
400.
4,
401.
6,
402.
10]
403.
리스트
404.
해석(example) •퀵
405.
소트 qsort([])
406.
-
407.
[];
408.
qsort([Pivot
409.
|
410.
T])
411.
-
412.
qsort([X
413.
||
414.
X
415.
-T,
416.
X
417.
418.
Pivot])
419.
++
420.
Pivot
421.
++
422.
qsort([X
423.
||
424.
X
425.
-T,
426.
X
427.
=
428.
Pivot]).
429.
모듈 •Erlang에서의
430.
코드의
431.
기본
432.
단위
433.
•모든
434.
함수는
435.
모듈에
436.
포함됨 -module(demo).
437.
-export([double/1]).
438.
439.
440.
double(X)
441.
-
442.
times(X,
443.
2).
444.
times(X,
445.
N)
446.
-
447.
X
448.
*
449.
N.
450.
Erlnag에서의
451.
병행성 •스레드의
452.
문제점
453.
•동일한
454.
프로세스
455.
내의
456.
스레드는
457.
자원을
458.
공유
459.
•자원을
460.
공유한
461.
다는
462.
사실이
463.
다루기
464.
어려운
465.
복잡성을
466.
초래(동기화)
467.
•동기화는
468.
운영체제
469.
수준의
470.
잠금을
471.
요함(세마포어)
472.
•Erlang의
473.
철학
474.
•스레드가
475.
아닌
476.
가벼운
477.
프로세스:
478.
운영체제
479.
프로세스가
480.
아닌
481.
자체
482.
프로세스
483.
•프로세스
484.
통신
485.
과정을
486.
단순하게,
487.
메시지
488.
전달을
489.
언어
490.
수준에서
491.
지원,
492.
(메시지
493.
수신
494.
박스)
495.
•Erlang
496.
프로그램은
497.
많은
498.
수의
499.
작은
500.
프로세스로
501.
구성됨
502.
프로세스의
503.
생성 Pid1 Pid2
504.
=
505.
spawn(Mod,
506.
Func,
507.
Args)
508.
모듈명,
509.
함수명,
510.
매개변수 Pid2
511.
메시지
512.
전달 Pid1 Pid2
513.
!
514.
{self(),
515.
foo} Pid2 {Pid1,
516.
foo} receive
517.
{from,
518.
Msg}
519.
-
520.
Actions,
521.
from
522.
!
523.
{ok}
524.
end {ok}
525.
클라이언트
526.
서버
527.
예제 -module(myserver).
528.
server(Data)
529.
-
530.
531.
receive
532.
533.
534.
{From,{request,X}}
535.
-
536.
537.
538.
539.
{R,
540.
Data1}
541.
=
542.
fn(X,
543.
Data),
544.
545.
546.
547.
From
548.
!
549.
{myserver,{reply,
550.
R}},
551.
552.
553.
554.
server(data1)
555.
556.
end. -export([request/1]).
557.
request(Req)
558.
-
559.
560.
myserver
561.
!
562.
{self(),{request,Req}},
563.
564.
receive
565.
566.
567.
{myserver,{reply,Rep}}
568.
-
569.
570.
571.
572.
Rep
573.
574.
end.
575.
프로세스
576.
실패
577.
처리 •Elrang의
578.
철학
579.
“크래시하도록
580.
내버려
581.
두라”
582.
•프로세스의
583.
종료를
584.
모니터링하기
585.
위한
586.
쉬운
587.
방법을
588.
제공
589.
•모니터링을
590.
위한
591.
3가지
592.
개념
593.
• 연결:
594.
두
595.
프로세스
596.
간에
597.
오류의
598.
확산
599.
경로를
600.
정의
601.
• 종료
602.
신호:
603.
프로세스가
604.
종료할때
605.
생성하는
606.
종료
607.
신호,
608.
연결된
609.
모든
610.
프로세스에
611.
전달됨
612.
• 시스템
613.
프로세스:
614.
비정상
615.
종료
616.
신호를
617.
받아서
618.
처리하는
619.
프로세스
620.
종료
621.
신호의
622.
전달 링크된
623.
모든
624.
프로세스에게
625.
전달 시스템
626.
프로세스인
627.
경우,
628.
이를
629.
처리 비정상
630.
종료
631.
신호를
632.
받을
633.
경우
634.
시스템
635.
프로세스가
636.
637.
아닌
638.
경우
639.
종료하고,
640.
종료
641.
신호를
642.
전달
643.
종료
644.
신호의
645.
전달(example) -module(die).
646.
-export([loop/0]).
647.
loop()
648.
-
649.
650.
651.
652.
653.
receive
654.
655.
656.
657.
658.
659.
660.
661.
662.
die
663.
-
664.
exit({crash});
665.
666.
667.
668.
669.
670.
671.
672.
673.
X
674.
-
675.
io:format(received
676.
~p~n,
677.
[X]),
678.
679.
680.
681.
682.
683.
684.
685.
686.
687.
688.
689.
690.
loop()
691.
692.
693.
694.
695.
end. -module(monitor).
696.
-export([loop/0]).
697.
loop()
698.
-
699.
700.
701.
702.
703.
process_flag(trap_exit,
704.
true),
705.
706.
707.
708.
709.
receive
710.
711.
712.
713.
714.
715.
716.
717.
718.
{monitor,
719.
Process}
720.
-
721.
722.
723.
724.
725.
726.
727.
728.
729.
730.
731.
732.
733.
link(Process),
734.
735.
736.
737.
738.
739.
740.
741.
742.
743.
744.
745.
746.
io:format(Monitoring
747.
process.~n),
748.
749.
750.
751.
752.
753.
754.
755.
756.
757.
758.
759.
760.
loop();
761.
762.
763.
764.
765.
766.
767.
768.
769.
{'EXIT',
770.
From,
771.
Reason}
772.
-
773.
774.
775.
776.
777.
778.
779.
780.
781.
782.
783.
784.
785.
io:format(Received
786.
Exit
787.
from:~p
788.
789.
reason:
790.
~p.,
791.
[From,
792.
Reason]),
793.
794.
795.
796.
797.
798.
799.
800.
801.
802.
803.
804.
805.
loop();
806.
807.
808.
809.
810.
811.
812.
813.
814.
die
815.
-
816.
817.
exit({monitor,
818.
die})
819.
820.
821.
822.
823.
end.
824.
종료
825.
신호의
826.
전달(example) -module(monitor2).
827.
-export([loop/0]).
828.
loop()
829.
-
830.
831.
832.
833.
834.
process_flag(trap_exit,
835.
true),
836.
837.
838.
839.
840.
receive
841.
842.
843.
844.
845.
846.
847.
848.
849.
new
850.
-
851.
852.
853.
854.
855.
856.
857.
858.
859.
860.
861.
862.
863.
io:format(Creating
864.
and
865.
monitoring
866.
process.~n),
867.
868.
869.
870.
871.
872.
873.
874.
875.
876.
877.
878.
879.
register(die,
880.
spawn_link(fun
881.
die:loop/0)),
882.
883.
884.
885.
886.
887.
888.
889.
890.
891.
892.
893.
894.
loop();
895.
896.
897.
898.
899.
900.
901.
902.
903.
{'EXIT',
904.
From,
905.
Reason}
906.
-
907.
908.
909.
910.
911.
912.
913.
914.
915.
916.
917.
918.
919.
io:format(Received
920.
Exit
921.
from:~p
922.
923.
reason:
924.
~p.,
925.
[From,
926.
Reason]),
927.
928.
929.
930.
931.
932.
933.
934.
935.
936.
937.
938.
939.
self()
940.
!
941.
new,
942.
943.
944.
945.
946.
947.
948.
949.
950.
951.
952.
953.
954.
loop()
955.
956.
957.
958.
959.
end. 프로세스
960.
오류시
961.
종류
962.
후
963.
재시작
964.
프로세스
965.
계층화 견고한
966.
시스템을
967.
위해서는
968.
어플리케이션
969.
내의
970.
프로세스를
971.
계층화(Layering)
972.
함
973.
분산
974.
프로그래밍 •앞의
975.
프로세스
976.
및
977.
실패
978.
처리
979.
개념은
980.
분산
981.
프로그래밍에서도
982.
동일하게
983.
적용
984.
됨
985.
•분산
986.
Erlang의
987.
중심
988.
개념은
989.
노드
990.
•노드는
991.
자체적인
992.
주소
993.
공간과
994.
프로세스
995.
집합을
996.
갖춘
997.
완전한
998.
가상
999.
머신
1000.
•노드
1001.
또는
1002.
노드
1003.
집합에
1004.
대한
1005.
접근은
1006.
쿠키
1007.
시스템을
1008.
통해
1009.
보호
1010.
• 모든
1011.
노드는
1012.
동일한
1013.
매직
1014.
쿠기를
1015.
가져야
1016.
함
1017.
분산
1018.
프로그래밍용
1019.
BIF •@spec
1020.
spawn(Node,
1021.
Fun)
1022.
-
1023.
Pid
1024.
•@spec
1025.
spawn(Node,
1026.
Mod,
1027.
Fun,
1028.
ArgList)
1029.
-
1030.
Pid
1031.
•@spec
1032.
spawn_link(Node,
1033.
Fun)
1034.
-
1035.
Pid
1036.
•@spec
1037.
spawn_link(Node,
1038.
Mod,
1039.
Func,
1040.
ArgList)
1041.
-
1042.
Pid
1043.
•@spec
1044.
monitor_node(Node,
1045.
Flag)
1046.
-
1047.
true
1048.
Erlang의
1049.
장단점 •핵심
1050.
강점
1051.
•동시적이면서
1052.
안정적
1053.
(프로세스들이
1054.
서로
1055.
모니터링)
1056.
•엔터프라이즈용
1057.
라이브러리
1058.
OTP
1059.
제공
1060.
•약점
1061.
•대부분의
1062.
프로그래머에게
1063.
낯선
1064.
문법
1065.
•통합
1066.
이슈:
1067.
JVM
1068.
위에서
1069.
동작하지
1070.
않음,
1071.
방대한
1072.
java
1073.
라이브러리
1074.
활용
1075.
못함
1076.
Erlang이
1077.
사용된
1078.
곳 •Yaws,
1079.
Web
1080.
Server
1081.
•CouchDB,
1082.
a
1083.
document-based
1084.
database
1085.
•SimpleDB,
1086.
a
1087.
distributed
1088.
database
1089.
•Riak,
1090.
a
1091.
distributed
1092.
database
1093.
•Chef,
1094.
cofiguration
1095.
management,
1096.
was
1097.
rewritten
1098.
in
1099.
version
1100.
11
1101.
•RabbitMQ,
1102.
an
1103.
implementation
1104.
of
1105.
AMQP
1106.
•WhatApp,
1107.
mobile
1108.
messenger
1109.
QA
1110.
References • Joe
1111.
Armstrong,
1112.
Programming
1113.
Erlang(김석준
1114.
옮김).
1115.
서울시
1116.
마포 구:
1117.
인사이트,
1118.
2008
1119.
• Bruce
1120.
Tate,
1121.
브루스
1122.
데이트의
1123.
세븐
1124.
랭귀지(임백준
1125.
옮김).
1126.
서울시
1127.
마포 구:
1128.
한빛미디어,
1129.
2015
1130.
• http://www.erlang.org/
Download now