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
67
Functional Data Structures
Aliaksandr Lomau
July 02, 2015
Tweet
Share
More Decks by Aliaksandr Lomau
See All by Aliaksandr Lomau
Fails Night
allomov
0
31
"Ya Ne Lochu Comp" Challenge.
allomov
1
80
Catch and Throw in Ruby
allomov
0
34
Mortal Rubizza
allomov
0
66
Рэмбовидная проблема: особенности развития открытых технологий
allomov
0
44
Vault-tec: Safest Future
allomov
0
190
Promises and Reality
allomov
1
49
Cloud Theory for Rubizza Classes
allomov
0
76
Антология деплоя
allomov
0
71
Other Decks in Technology
See All in Technology
Lexical Analysis
shigashiyama
1
150
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
600
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
1.3k
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
390
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
第1回 国土交通省 データコンペ参加者向け勉強会③- Snowflake x estie編 -
estie
0
130
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
180
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
Featured
See All Featured
Music & Morning Musume
bryan
46
6.2k
Agile that works and the tools we love
rasmusluckow
327
21k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
The Language of Interfaces
destraynor
154
24k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
97
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
A Tale of Four Properties
chriscoyier
156
23k
Embracing the Ebb and Flow
colly
84
4.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
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