Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Welcome to Erlang
Search
Oleg Zinchenko
June 25, 2015
Programming
0
93
Welcome to Erlang
My First Erlang talk dedicated to beginners
Oleg Zinchenko
June 25, 2015
Tweet
Share
More Decks by Oleg Zinchenko
See All by Oleg Zinchenko
ORO Meetup #4
cystbear
0
83
Keep It Simple Security (Symfony Cafe 28-01-2016)
cystbear
0
130
Erlang (GeekTalks)
cystbear
0
77
Clojure basics
cystbear
0
86
Erlang/N2O KNPMeetup
cystbear
0
160
Symfony Best Practices and beyond
cystbear
1
240
DDD on example of Symfony (SymfonyCamp UA 2014)
cystbear
3
920
MongoDB KNPLabs GeekTime
cystbear
1
85
DDD in PHP, on example of Symfony
cystbear
10
4.3k
Other Decks in Programming
See All in Programming
Android 16 × Jetpack Composeで縦書きテキストエディタを作ろう / Vertical Text Editor with Compose on Android 16
cc4966
2
250
Navigating Dependency Injection with Metro
zacsweers
3
1k
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
時間軸から考えるTerraformを使う理由と留意点
fufuhu
16
4.8k
為你自己學 Python - 冷知識篇
eddie
1
350
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
110
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
440
私の後悔をAWS DMSで解決した話
hiramax
4
210
Navigation 2 を 3 に移行する(予定)ためにやったこと
yokomii
0
300
🔨 小さなビルドシステムを作る
momeemt
4
680
Reading Rails 1.0 Source Code
okuramasafumi
0
240
Deep Dive into Kotlin Flow
jmatsu
1
350
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
840
Scaling GitHub
holman
463
140k
What's in a price? How to price your products and services
michaelherold
246
12k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Designing for humans not robots
tammielis
253
25k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Mobile First: as difficult as doing things right
swwweet
224
9.9k
It's Worth the Effort
3n
187
28k
The Language of Interfaces
destraynor
161
25k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Building Adaptive Systems
keathley
43
2.7k
Transcript
Welcome to Erlang
cystbear Erlanger Symfony expert MongoDB adept OSS doer https://twitter.com/1cdecoder https://github.com/cystbear
http://trinity.ck.ua/
None
HOTCODE 2013 https://twitter.com/5ht https://synrc.com/ Maxim Sokhatskiy
Time to change something
History
History https://www.youtube.com/watch?
Specific use cases Non OOP paradigm Naive syntax No so
big community Lack of libs Pros / Cons https://www.erlang-solutions.com/ https://synrc.com/ https://github.com/tapsters https://github.com/erlangbureau
Low level thinking! Functional Fast Robust Expressive syntax Endless running
apps Update code on a fly Own Scheduler Processes based architecture Supervisor tree No shared memory Pros / Cons
Hey, did you heard about FP?
High order functions Lambda functions Separation data and functions Immutable
Lazy Tail recursion Algebraic data types Pattern matching Functional https://twitter.com/nikitonsky http://tonsky.me/talks/2015-frontendconf/ http://tonsky.me/talks/2015-codefest/
Performance http://slides.com/maximsokhatsky/n2o
Scheduler http://habrahabr.ru/post/128772/ http://habrahabr.ru/post/260065/
Basics Integer 42 Float 4.2 aka double Atom ok Binary
<<"Erlang-powa">> Reference #Ref<0.0.0.29> Pid <0.0.42> Port #Port<0.42> Fun #Fun<erl_eval.6.82930912>
Basics2 List [<<42,1,0,90>>, 1, ok] Tuple {<0.0.16>, 107, 42, ["madness",
true]} we can force lists type and typify turples named tuples =:= records
Example -module(fib). -export([fib/1, tail_fib/1]). fib(0) -> 0; fib(1) -> 1;
fib(N) -> fib(N - 1) + fib(N - 2).
Example tail_fib(N)-> tail_fib(N, 0, 0, 0). tail_fib(N, Acc, Prev, PrevPrev)
-> case Acc of N -> Prev + PrevPrev; 0 -> tail_fib(N, Acc + 1, 0, 0); 1 -> tail_fib(N, Acc + 1, 1, 0); _ -> tail_fib(N, Acc + 1, Prev + PrevPrev, Prev) end.
Example QuickSort qsort([]) -> []; qsort([X|Xs]) -> qsort([Y || Y<-Xs,
Y <= X]) ++ [X] ++ qsort([Y || Y<-Xs, Y > X]).
Application Examples Web Sites Rest Services Video Streaming Chats RabbitMQ
Riak, CouchDB, Hibari, KAI, LeoFS, Mnesia ejabberd Cowboy Wings 3D PrivatBank Github Pages / Gist
Future
Functional Thursday
None