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
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Functional Data Structures
Aliaksandr Lomau
July 02, 2015
More Decks by Aliaksandr Lomau
See All by Aliaksandr Lomau
Fails Night
allomov
0
64
"Ya Ne Lochu Comp" Challenge.
allomov
1
100
Catch and Throw in Ruby
allomov
0
61
Mortal Rubizza
allomov
0
110
Рэмбовидная проблема: особенности развития открытых технологий
allomov
0
64
Vault-tec: Safest Future
allomov
0
280
Promises and Reality
allomov
1
66
Cloud Theory for Rubizza Classes
allomov
0
100
Антология деплоя
allomov
0
91
Other Decks in Technology
See All in Technology
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
53k
BigQuery を検索ソースとした AI Agent の作り方って 〇〇 通りあんねん
satohjohn
0
150
オートマトンと字句解析でRoslynを読む
tomokusaba
0
130
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
0
880
QAと開発の両側から進める AI活用 -QAプロセスAI支援ツールキットと Inner Loop / Outer Loopの取り組み-
legalontechnologies
PRO
2
400
事業成長とAI活用を止めないデータ基盤アーキテクチャの設計思想
hiracky16
1
790
Webの技術とガジェットで子どもも大人も楽しめるワクワク体験を提供する / Qiita Tech Festa Day 2026
you
PRO
1
330
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
430
データ組織の転換期 一足飛びしない段階的戦略
leveragestech
PRO
0
140
NYC Summit 2026 におけるAmazon Bedrock AgentCore のアップデート
ren8k
3
300
reFACToring
moznion
1
1.1k
AI エージェント時代のデジタルアイデンティティ
fujie
2
1.3k
Featured
See All Featured
Amusing Abliteration
ianozsvald
1
240
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
600
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
650
Statistics for Hackers
jakevdp
799
230k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Darren the Foodie - Storyboard
khoart
PRO
3
3.5k
Being A Developer After 40
akosma
91
590k
Deep Space Network (abreviated)
tonyrice
0
240
Done Done
chrislema
186
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Embracing the Ebb and Flow
colly
88
5.1k
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