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
80
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
76
Keep It Simple Security (Symfony Cafe 28-01-2016)
cystbear
0
110
Erlang (GeekTalks)
cystbear
0
69
Clojure basics
cystbear
0
78
Erlang/N2O KNPMeetup
cystbear
0
140
Symfony Best Practices and beyond
cystbear
1
200
DDD on example of Symfony (SymfonyCamp UA 2014)
cystbear
3
910
MongoDB KNPLabs GeekTime
cystbear
1
66
DDD in PHP, on example of Symfony
cystbear
10
4k
Other Decks in Programming
See All in Programming
GitHub Copilot Tips and Tricks
yuichielectric
26
7.4k
Swiftの型推論を学ぼう | Let's Learn About Type Inference in Swift
omochi
2
520
自作ソフト(VMagicMirror)がVRMA対応してる話+実装のTips
bakudreameater
0
110
Why 1 + 1 = 2 in Swift?
1plus4
1
240
Dockerで始めるAWS Lambda開発
stutkhd0709
13
2.5k
phpunit/php-code-coverageって何をしてるんだ #phperkaigi
o0h
PRO
2
220
TDDと今まで
kanayannet
0
140
フロントエンドパフォーマンス 入門
shouta2
7
1.5k
実践!RDRAを活用した既存システムの仕様変更 / Specification Changes in Existing Systems Utilizing RDRA
imamotohikaru
0
2.5k
孤独のCTOグルメという やや奇抜な企画をやった目的と効果
shoheimitani
3
1k
WinUI 3デモ - "CommunityToolkit.Mvvm"NuGetパッケージ編
andrewkeepcoding
0
130
チームでモデリングを育てるうえで 考えたこと・気づいたこと / Cultivating Modeling in Teams: Thoughts and Insights
mackey0225
5
2.2k
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.8k
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
Robots, Beer and Maslow
schacon
PRO
154
7.9k
The Mythical Team-Month
searls
214
42k
How GitHub Uses GitHub to Build GitHub
holman
467
290k
The Cult of Friendly URLs
andyhume
73
5.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
28
46k
The Brand Is Dead. Long Live the Brand.
mthomps
48
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
Fontdeck: Realign not Redesign
paulrobertlloyd
75
4.8k
Six Lessons from altMBA
skipperchong
19
2.9k
Designing the Hi-DPI Web
ddemaree
275
33k
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