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
130
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
140
Profile & Analyze Node.js Applications
gioyik
0
120
Node.js Contributor Workshop
gioyik
0
97
Profile & Analyze Node.js Applications like a Pro
gioyik
1
82
Leak Hunting - Finding and debugging a memory leak in Nodejs.pdf
gioyik
1
990
Finding and debugging a memory leak in Node.js
gioyik
0
190
Leak Hunting: Finding and debugging a memory leak in Node.js
gioyik
0
570
Performance first: Node.js and Rust
gioyik
0
190
Time for Growth
gioyik
0
150
Other Decks in Technology
See All in Technology
Kubecon NA 2025: DRA 関連の Recap と社内 GPU 基盤での課題
kevin_namba
0
110
今日から始めるAmazon Bedrock AgentCore
har1101
4
320
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
1
390
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
1.8k
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
150
2026年はチャンキングを極める!
shibuiwilliam
8
1.8k
みんなだいすきALB、NLBの 仕組みから最新機能まで総おさらい / Mastering ALB & NLB: Internal Mechanics and Latest Innovations
kaminashi
0
210
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
0
820
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
360
GSIが複数キー対応したことで、俺達はいったい何が嬉しいのか?
smt7174
3
130
AI時代、1年目エンジニアの悩み
jin4
1
150
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
140
Featured
See All Featured
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
250
Mind Mapping
helmedeiros
PRO
0
71
Testing 201, or: Great Expectations
jmmastey
46
8k
What does AI have to do with Human Rights?
axbom
PRO
0
2k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Producing Creativity
orderedlist
PRO
348
40k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
580
Utilizing Notion as your number one productivity tool
mfonobong
2
210
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Paper Plane (Part 1)
katiecoart
PRO
0
3.8k
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