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
Road to LISP heaven
Search
Giovanny Gongora
November 15, 2018
Technology
160
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Road to LISP heaven
Presented: Pataconf 2018
Giovanny Gongora
November 15, 2018
More Decks by Giovanny Gongora
See All by Giovanny Gongora
Memory Chronicles: Manage, Trace and Fix Memory Leaks
gioyik
0
160
Profile & Analyze Node.js Applications
gioyik
0
140
Node.js Contributor Workshop
gioyik
0
120
Profile & Analyze Node.js Applications like a Pro
gioyik
1
110
Leak Hunting - Finding and debugging a memory leak in Nodejs.pdf
gioyik
1
1k
Finding and debugging a memory leak in Node.js
gioyik
0
210
Leak Hunting: Finding and debugging a memory leak in Node.js
gioyik
0
590
Performance first: Node.js and Rust
gioyik
0
220
Time for Growth
gioyik
0
170
Other Decks in Technology
See All in Technology
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
120
Digitization部 紹介資料
sansan33
PRO
2
7.8k
AIエージェントを雇う前に決める5つのこと
knishioka
1
130
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
590
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
20k
分割40%キーボードにスムーズに入門するには
hoto17296
1
210
Guerilla InnerSource in enterprises, during the AI hype
onenashev
PRO
0
130
Point Cloud as a Foreign Language for Multi-modal Large Language Model
takmin
0
350
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
210
データエンジニアの困りごとをDevinと一緒に解消する
10xinc
1
140
AWSとGitHub Actionsの責任境界と 組織で安全に使用する取り組み
nealle
1
240
Kiro5兄弟のいまどきのセキュリティ基礎知識
kentapapa
0
470
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
260
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
510
Everyday Curiosity
cassininazir
0
300
Test your architecture with Archunit
thirion
2
2.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
GitHub's CSS Performance
jonrohan
1033
470k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
960
The Curious Case for Waylosing
cassininazir
1
490
The Invisible Side of Design
smashingmag
301
52k
Transcript
Road to LISP heaven
The ((( ))) language
The ((( ))) language
Why talk about LISP? • Want to learn more about
programming languages • Understand why we do something today • What is the purpose and behavior with something • It’s fun, why no? :)
What is this talk about? • Language history • Context
about design decisions • Understand which LISP concepts are good for • Think about new data reference patterns ready • No rants plz
History/Context
• Let’s travel to 1930s
• Let’s travel to 1930s • New Princeton offices
• Let’s travel to 1930s • New Princeton offices •
Alonzo Church
• Let’s travel to 1930s • New Princeton offices •
Alonzo Church • Lambda Calculus
• Let’s travel to 1930s • New Princeton offices •
Alonzo Church • Lambda Calculus • World War II
• Let’s travel to 1930s • New Princeton offices •
Alonzo Church • Lambda Calculus • World War II • Electronic Discrete Variable Automatic Computer (EDVAC)
• Let’s travel to 1930s • New Princeton offices •
Alonzo Church • Lambda Calculus • World War II • Electronic Discrete Variable Automatic Computer (EDVAC) • 1958 unveiled List Processing language (Lisp)
Learn to read LIPS in one example
f(4, 2)
(f 4, 2)
(60 * 9 / 5) + 32
(+ (* (/ 9 5) 60) 32)
You already know LISP :)
(+ 2 2)
4
(= (+ 2 2) (* 2 2))
True
(first (list ‘a ‘b ‘c))
a
(define patacones 6) (define chorizos 5) (if (> patacones chorizos)
(printf "Patacones!") (printf “Chorizos!”))
Patacones!
((define (dbl x) (* 4 x)) (dbl 10)
40
Interesting facts about LISP • Comments are made using ;
• Defined only atom, eq, cons, car, and cdr • Functions were intended to create the whole language
What made LISP “different”?
• Conditionals
• Conditionals • A function type
• Conditionals • A function type • Recursion
• Conditionals • A function type • Recursion • New
concept of variables
• Conditionals • A function type • Recursion • New
concept of variables • Garbage Collection
• Conditionals • A function type • Recursion • New
concept of variables • Garbage Collection • Composed expressions
• Conditionals • A function type • Recursion • New
concept of variables • Garbage Collection • Composed expressions • Literal data structures
(macros) You can change the language, implement your own features,
or even write a new programming language
Scheme vs Common lisp
Common Lisp
Scheme
Functional Programming & Lambda calculus & LISP
• Not all lambda calculus ideas transform to practice •
Functional programming is a set of ideas, not a set of strict guidelines • Concurrency is a win
Thanks Giovanny Gongora @Gioyik