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
81
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
68
Profile & Analyze Node.js Applications
gioyik
0
43
Node.js Contributor Workshop
gioyik
0
29
Profile & Analyze Node.js Applications like a Pro
gioyik
1
40
Leak Hunting - Finding and debugging a memory leak in Nodejs.pdf
gioyik
1
700
Finding and debugging a memory leak in Node.js
gioyik
0
130
Leak Hunting: Finding and debugging a memory leak in Node.js
gioyik
0
460
Performance first: Node.js and Rust
gioyik
0
130
Time for Growth
gioyik
0
110
Other Decks in Technology
See All in Technology
20240416_devopsdaystokyo
kzkmaeda
1
220
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
290
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
340
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
160
Cracking the KubeCon CfP
inductor
2
230
Azure犬駆動開発の記録/GlobalAzureFukuoka2024_20240420
nina01
1
200
KubeCon EU 2024 Recap “Kubernetes Policy Time Machine: Where to Next?”
ryysud
0
200
Next'24 事例セッションの紹介とクラウド資格を活用したキャリア形成について語りMuscle
yasumuusan
1
430
ChatGPT for IT Service Management (IT Pro)
dahatake
7
1.5k
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
370
Hands-on Gemini, the Google DeepMind LLM
meteatamel
1
110
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
200
Featured
See All Featured
The Cult of Friendly URLs
andyhume
74
5.7k
Debugging Ruby Performance
tmm1
70
11k
[RailsConf 2023] Rails as a piece of cake
palkan
23
3.9k
The Mythical Team-Month
searls
216
42k
Building Effective Engineering Teams - LeadDev
addyosmani
28
1.8k
How to Ace a Technical Interview
jacobian
272
22k
Building a Scalable Design System with Sketch
lauravandoore
456
32k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Practical Orchestrator
shlominoach
182
9.7k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
116
18k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
19
1.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
37
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