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
74
0
Share
Functional Data Structures
Aliaksandr Lomau
July 02, 2015
More Decks by Aliaksandr Lomau
See All by Aliaksandr Lomau
Fails Night
allomov
0
55
"Ya Ne Lochu Comp" Challenge.
allomov
1
100
Catch and Throw in Ruby
allomov
0
50
Mortal Rubizza
allomov
0
100
Рэмбовидная проблема: особенности развития открытых технологий
allomov
0
56
Vault-tec: Safest Future
allomov
0
270
Promises and Reality
allomov
1
59
Cloud Theory for Rubizza Classes
allomov
0
97
Антология деплоя
allomov
0
83
Other Decks in Technology
See All in Technology
OCI技術資料 : 証明書サービス概要
ocise
1
7.2k
Cortex Codeでデータの仕事を全部Agenticにやりきろう!
gappy50
0
290
GitHub Actions侵害 — 相次ぐ事例を振り返り、次なる脅威に備える
flatt_security
13
7.5k
推し活エージェント
yuntan_t
1
770
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
5
1.3k
ブラックボックス化したMLシステムのVertex AI移行 / mlops_community_62
visional_engineering_and_design
1
280
Babylon.js Japan Activities (2026/4)
limes2018
0
170
Strands Agents × Amazon Bedrock AgentCoreで パーソナルAIエージェントを作ろう
yokomachi
2
110
AIを活用したアクセシビリティ改善フロー
degudegu2510
1
130
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
230
Databricks Lakebaseを用いたAIエージェント連携
daiki_akimoto_nttd
0
140
Zephyr(RTOS)でARMとRISC-Vのコア間通信をしてみた
iotengineer22
0
130
Featured
See All Featured
Abbi's Birthday
coloredviolet
2
6.3k
Making Projects Easy
brettharned
120
6.6k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.2k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
210
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
250
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
110
Design in an AI World
tapps
0
190
Building the Perfect Custom Keyboard
takai
2
720
My Coaching Mixtape
mlcsv
0
92
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
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