Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Road to LISP heaven
Giovanny Gongora
November 15, 2018
Technology
1
64
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
34
Profile & Analyze Node.js Applications
gioyik
0
27
Node.js Contributor Workshop
gioyik
0
18
Profile & Analyze Node.js Applications like a Pro
gioyik
1
26
Leak Hunting - Finding and debugging a memory leak in Nodejs.pdf
gioyik
1
540
Finding and debugging a memory leak in Node.js
gioyik
0
120
Leak Hunting: Finding and debugging a memory leak in Node.js
gioyik
0
430
Performance first: Node.js and Rust
gioyik
0
120
Time for Growth
gioyik
0
110
Other Decks in Technology
See All in Technology
Power BI のうらがわ
hanaseleb
1
130
CloudWatchアラームによるサービス継続のための監視入門 / Introduction to Monitoring for Service Continuity with CloudWatch Alarms
inomasosan
1
400
A3-1 IBM Championが本音で語る「IBM Cloud」
kolinz
0
300
聊聊 Cgo 的二三事
david74chou
0
330
テクニカルライティングの検定を受けてみた話 / "My Story About Taking the Technical Writing Exam
line_developers
PRO
1
190
Simplify Cloud Native Security with Trivy
knqyf263
0
490
DeepDive into Modern Development with AWS
mokocm
1
320
Cloud Foundryの移行先はどこか? オープンソースPaaS探し
kolinz
0
340
年700万円損するサーバレスの 認可システムをご紹介します!!
higuuu
3
290
ReverseETLでユーザーに価値を届ける基盤を実現した話
hakky
0
330
一番小さなリファクタリングの話
shirayanagiryuji
0
140
増田亨さんによる 「設計の考え方とやり方」勉強会オープニング
tsuyok
0
190
Featured
See All Featured
WebSockets: Embracing the real-time Web
robhawkes
57
5.5k
GitHub's CSS Performance
jonrohan
1020
420k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
12
940
Designing for humans not robots
tammielis
241
24k
Agile that works and the tools we love
rasmusluckow
319
19k
Code Reviewing Like a Champion
maltzj
506
37k
Practical Orchestrator
shlominoach
178
8.7k
Raft: Consensus for Rubyists
vanstee
127
5.5k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
11
4.8k
Six Lessons from altMBA
skipperchong
14
1.4k
Keith and Marios Guide to Fast Websites
keithpitt
404
21k
StorybookのUI Testing Handbookを読んだ
zakiyama
5
2.5k
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