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
1
110
Road to LISP heaven
Presented: Pataconf 2018
Giovanny Gongora
November 15, 2018
Tweet
Share
More Decks by Giovanny Gongora
See All by Giovanny Gongora
Memory Chronicles: Manage, Trace and Fix Memory Leaks
gioyik
0
120
Profile & Analyze Node.js Applications
gioyik
0
81
Node.js Contributor Workshop
gioyik
0
71
Profile & Analyze Node.js Applications like a Pro
gioyik
1
68
Leak Hunting - Finding and debugging a memory leak in Nodejs.pdf
gioyik
1
900
Finding and debugging a memory leak in Node.js
gioyik
0
170
Leak Hunting: Finding and debugging a memory leak in Node.js
gioyik
0
530
Performance first: Node.js and Rust
gioyik
0
170
Time for Growth
gioyik
0
140
Other Decks in Technology
See All in Technology
Witchcraft for Memory
pocke
1
310
Windows 11 で AWS Documentation MCP Server 接続実践/practical-aws-documentation-mcp-server-connection-on-windows-11
emiki
0
960
AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions
matsuihidetoshi
1
260
標準技術と独自システムで作る「つらくない」SaaS アカウント管理 / Effortless SaaS Account Management with Standard Technologies & Custom Systems
yuyatakeyama
3
1.2k
なぜ私はいま、ここにいるのか? #もがく中堅デザイナー #プロダクトデザイナー
bengo4com
0
410
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
210
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
340
解析の定理証明実践@Lean 4
dec9ue
0
180
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
6
2.2k
Prox Industries株式会社 会社紹介資料
proxindustries
0
290
How Community Opened Global Doors
hiroramos4
PRO
1
120
PostgreSQL 18 cancel request key長の変更とRailsへの関連
yahonda
0
120
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Adopting Sorbet at Scale
ufuk
77
9.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Embracing the Ebb and Flow
colly
86
4.7k
Speed Design
sergeychernyshev
32
1k
Designing for humans not robots
tammielis
253
25k
Practical Orchestrator
shlominoach
188
11k
Raft: Consensus for Rubyists
vanstee
140
7k
Six Lessons from altMBA
skipperchong
28
3.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
930
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