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
Functional Data Structures
Search
Aliaksandr Lomau
July 02, 2015
Technology
0
68
Functional Data Structures
Aliaksandr Lomau
July 02, 2015
Tweet
Share
More Decks by Aliaksandr Lomau
See All by Aliaksandr Lomau
Fails Night
allomov
0
38
"Ya Ne Lochu Comp" Challenge.
allomov
1
88
Catch and Throw in Ruby
allomov
0
40
Mortal Rubizza
allomov
0
79
Рэмбовидная проблема: особенности развития открытых технологий
allomov
0
48
Vault-tec: Safest Future
allomov
0
230
Promises and Reality
allomov
1
51
Cloud Theory for Rubizza Classes
allomov
0
87
Антология деплоя
allomov
0
74
Other Decks in Technology
See All in Technology
(非公式) AWS Summit Japan と 海浜幕張 の歩き方 2025年版
coosuke
PRO
1
330
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
370
Azure AI Foundryでマルチエージェントワークフロー
seosoft
0
150
Amazon ECS & AWS Fargate 運用アーキテクチャ2025 / Amazon ECS and AWS Fargate Ops Architecture 2025
iselegant
13
4.3k
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全
opelab
9
2.2k
【TiDB GAME DAY 2025】Shadowverse: Worlds Beyond にみる TiDB 活用術
cygames
0
850
Definition of Done
kawaguti
PRO
6
460
TerraformをSaaSで使うとAzureの運用がこんなに楽ちん!HCP Terraformって何?
mnakabayashi
0
300
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
2
150
AIエージェントの継続的改善のためオブザーバビリティ
pharma_x_tech
6
1.4k
菸酒生在 LINE Taiwan 的後端雙刀流
line_developers_tw
PRO
0
1.1k
生成AIでwebアプリケーションを作ってみた
tajimon
2
120
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Done Done
chrislema
184
16k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
GitHub's CSS Performance
jonrohan
1031
460k
Bash Introduction
62gerente
614
210k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Visualization
eitanlees
146
16k
Thoughts on Productivity
jonyablonski
69
4.7k
Balancing Empowerment & Direction
lara
1
340
Transcript
by Alexander Lomov
Agenda: 1. Functional data primitives. What are they? 2. How
to live with immutable things? 3. Evaluating space and time. 4. Benefits for web developers.
None
Functional data primitives.
atoms sexprs
What is an atom?
ϷКίДЙОЛЙ㽞 ЂЕάНТЗ "UPNJTN
An atom is the smallest constituent unit of ordinary matter
that has the properties of a structural element. In our case atoms are fundamental data types such as numbers, string, bytes and etc.
atoms / s-expressions (sexp интимного тут нет) атомисты atomic symbols"
represented as "strings of capital Latin letters and digits with single embedded blanks" (i.e., character string and numeric literals).
s-expressions, sexprs or sexps - “symbolic expression”, are a notation
for nested list tree-structured data in Lisp. s-expression = ((x . y) | atom), where x and y are s-expressions
(2 * (3 + 4))
(* 2 (+ 3 4)) (2 * (3 + 4))
“Польская нотация”
cons cat cdr
cons = constructor (cons 1 (cons 2 (cons 3 nil)))
== (list 1 2 3)
car = the first element (content of address register) head
(cons 1 (cons 2 (cons 3 nil)))
cdr - the second element (content of decrement register) tail
(cons 1 (cons 2 (cons 3 nil)))
How to live with immutable things?
Are we really can live without changing variable values?
None
http://valve.github.io/blog/2014/07/04/from-object-to- functional-immutability/ Actually we already do
http://valve.github.io/blog/2014/07/04/from-object-to- functional-immutability/ But we can avoid it
How does it work in functional languages?
None
None
The Tralfamadorians are described as being able to see in
four dimensions, allowing them to simultaneously observe any and every point in the space-time continuum.
https://www.cs.cmu.edu/~sleator/papers/making-data- structures-persistent.pdf
None
Really worth reading
Evaluating space and time.
We all know what O(n) means.
We all know what O(n) means. It means the worst
case.
amor tiza tion
Amortized Analysis is a method for analyzing a given algorithm's
time complexity, or how much of a resource, especially time or memory in the context of computer programs, it takes to execute.
Benefits for web developers
We use Linux
We love Linux
RCU read-create-update libcds concurrent data structures http://libcds.sourceforge.net/
http://tonsky.me/talks/2015-codefest/
Laziness
None
None
None
None
None
None
None
None
None