ruby after 18+ months of clojure
Post on 17-Oct-2014
3.897 views
DESCRIPTION
Slides for February 17 Groupon geekfest lunchTRANSCRIPT
![Page 1: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/1.jpg)
Ruby After 18+ Months of Clojure
-or-
Functional Learnings of Clojure for Make Benefit of Glorious Language of Ruby*
(a work in progress)
Brian Marick, [email protected], @marick
1 *Alternate title courtesy @infinitaryWednesday, January 18, 2012
![Page 2: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/2.jpg)
Ladies and Gentlemen: The Computer
Wednesday, January 18, 2012
![Page 3: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/3.jpg)
Wednesday, January 18, 2012
![Page 4: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/4.jpg)
Wednesday, January 18, 2012
![Page 5: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/5.jpg)
Wednesday, January 18, 2012
![Page 6: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/6.jpg)
4
f()g()
h()
j()
k()
m()
width
height
colorscofield_v
Our Friend, the Class
Wednesday, January 18, 2012
![Page 7: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/7.jpg)
What Are Classes Good For?
5
Wednesday, January 18, 2012
![Page 8: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/8.jpg)
What Are Classes Good For?
5
Wednesday, January 18, 2012
![Page 9: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/9.jpg)
6
The Real World Has Fuzzy Categories
Wednesday, January 18, 2012
![Page 10: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/10.jpg)
6
The Real World Has Fuzzy Categories
Wednesday, January 18, 2012
![Page 11: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/11.jpg)
7
f()g()
h()
j()
k()
m()
width
height
colorscofield_v
Classes Are For Finding Things
Wednesday, January 18, 2012
![Page 12: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/12.jpg)
Classes Are For Finding Things
8
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
Wednesday, January 18, 2012
![Page 13: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/13.jpg)
Classes Are For Finding Things
8
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs { } [ ] ( )
Wednesday, January 18, 2012
![Page 14: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/14.jpg)
Classes Are For Finding Things
8
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs { } [ ] ( )
Wednesday, January 18, 2012
![Page 15: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/15.jpg)
Classes Are For Finding Things
8
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs { } [ ] ( )
Wednesday, January 18, 2012
![Page 16: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/16.jpg)
Classes Are For Finding Things
8
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs { } [ ] ( )
Wednesday, January 18, 2012
![Page 17: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/17.jpg)
Classes Are For Finding Things
8
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs
wh
cs { } [ ] ( )
But At What Cost?
Wednesday, January 18, 2012
![Page 18: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/18.jpg)
9
Wednesday, January 18, 2012
![Page 19: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/19.jpg)
10
Lookup
Wednesday, January 18, 2012
![Page 20: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/20.jpg)
10
Lookup
Wednesday, January 18, 2012
![Page 21: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/21.jpg)
11
Wednesday, January 18, 2012
![Page 22: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/22.jpg)
12
?
Lookup
Copy
Wednesday, January 18, 2012
![Page 23: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/23.jpg)
12
?
Lookup
Copy
Wednesday, January 18, 2012
![Page 24: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/24.jpg)
12
?
Lookup
Copy
Wednesday, January 18, 2012
![Page 25: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/25.jpg)
13
Wednesday, January 18, 2012
![Page 26: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/26.jpg)
13
Do The Simplest Thing That Could
Possibly Work
Wednesday, January 18, 2012
![Page 27: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/27.jpg)
14
ActiveRecord
Wednesday, January 18, 2012
![Page 28: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/28.jpg)
14
ActiveRecord
Wait. What?
Wednesday, January 18, 2012
![Page 29: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/29.jpg)
id
uses
ctimesliceLookup
15
Copy
Wednesday, January 18, 2012
![Page 30: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/30.jpg)
id
uses
ctimeslice
Lookup
15
Copy
Wednesday, January 18, 2012
![Page 31: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/31.jpg)
Lookup
16
id
uses
ctimeslice
Copy
Wednesday, January 18, 2012
![Page 32: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/32.jpg)
Lookup
16
id
uses
ctimeslice
Copy
Wednesday, January 18, 2012
![Page 33: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/33.jpg)
copy comitted_animals
Lookup
17
id
use ctim
idu cti
idu ctiCopy
Wednesday, January 18, 2012
![Page 34: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/34.jpg)
copy comitted_animals
Lookup
17
id
use ctim
idu cti
idu ctiCopy
Wednesday, January 18, 2012
![Page 35: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/35.jpg)
copy comitted_animals
Lookup
17
id
use ctim
idu cti
idu ctiCopy
Wednesday, January 18, 2012
![Page 36: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/36.jpg)
copy comitted_animals
Lookup
17
id
use ctim
idu cti
idu cti
Copy
Wednesday, January 18, 2012
![Page 37: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/37.jpg)
copy comitted_animals
Lookup
18
id
use ctim
idu cti
idu cti
Copy
Wednesday, January 18, 2012
![Page 38: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/38.jpg)
Lookup
18
Copy
Wednesday, January 18, 2012
![Page 39: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/39.jpg)
19
Copy
Lookup
Wednesday, January 18, 2012
![Page 40: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/40.jpg)
19
Copy
Lookup
Wednesday, January 18, 2012
![Page 41: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/41.jpg)
20
Wednesday, January 18, 2012
![Page 42: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/42.jpg)
20
Wednesday, January 18, 2012
![Page 43: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/43.jpg)
Lookup
21
Copy
Wednesday, January 18, 2012
![Page 44: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/44.jpg)
Lookup
21
Copy
Wednesday, January 18, 2012
![Page 45: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/45.jpg)
22
and...
Wednesday, January 18, 2012
![Page 46: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/46.jpg)
22
and...
Wednesday, January 18, 2012
![Page 47: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/47.jpg)
23
Wednesday, January 18, 2012
![Page 48: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/48.jpg)
23
{ }
Wednesday, January 18, 2012
![Page 49: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/49.jpg)
23
{ }
Wednesday, January 18, 2012
![Page 50: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/50.jpg)
24
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }
{ }{ }
Wednesday, January 18, 2012
![Page 51: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/51.jpg)
25
Wednesday, January 18, 2012
![Page 52: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/52.jpg)
25
Wednesday, January 18, 2012
![Page 53: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/53.jpg)
26
Wednesday, January 18, 2012
![Page 54: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/54.jpg)
27
Wednesday, January 18, 2012
![Page 55: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/55.jpg)
27
Wednesday, January 18, 2012
![Page 56: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/56.jpg)
Immutability
28
Wednesday, January 18, 2012
![Page 57: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/57.jpg)
Immutability
28
Wednesday, January 18, 2012
![Page 58: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/58.jpg)
Immutability
28
Wednesday, January 18, 2012
![Page 59: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/59.jpg)
29
Hygiene
Wednesday, January 18, 2012
![Page 60: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/60.jpg)
29
Hygiene
“You’ve slept with everyoneeveryone you’ve ever slept with
ever slept with.”
Wednesday, January 18, 2012
![Page 61: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/61.jpg)
29
Hygiene
“You’ve slept with everyoneeveryone you’ve ever slept with
ever slept with.”
“Your code might be infected by any code that has ever touched your data.”
Wednesday, January 18, 2012
![Page 62: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/62.jpg)
29
a=Hygiene
“You’ve slept with everyoneeveryone you’ve ever slept with
ever slept with.”
“Your code might be infected by any code that has ever touched your data.”
Wednesday, January 18, 2012
![Page 63: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/63.jpg)
29
a=
a
Hygiene
“You’ve slept with everyoneeveryone you’ve ever slept with
ever slept with.”
“Your code might be infected by any code that has ever touched your data.”
Wednesday, January 18, 2012
![Page 64: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/64.jpg)
29
a=
a
Hygiene
“You’ve slept with everyoneeveryone you’ve ever slept with
ever slept with.”
“Your code might be infected by any code that has ever touched your data.”
Wednesday, January 18, 2012
![Page 65: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/65.jpg)
30
Consequences
Wednesday, January 18, 2012
![Page 66: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/66.jpg)
30
Consequences
Wednesday, January 18, 2012
![Page 67: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/67.jpg)
31
5
Consequences
Wednesday, January 18, 2012
![Page 68: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/68.jpg)
32
Consequences
5
Wednesday, January 18, 2012
![Page 69: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/69.jpg)
32
Consequences
5
Wednesday, January 18, 2012
![Page 70: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/70.jpg)
32
Consequences
5
Wednesday, January 18, 2012
![Page 71: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/71.jpg)
33
Wednesday, January 18, 2012
![Page 72: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/72.jpg)
In Short: Why Not?
34
Wednesday, January 18, 2012
![Page 73: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/73.jpg)
In Short: Why Not?
34
• Removes one source of bugs
Wednesday, January 18, 2012
![Page 74: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/74.jpg)
In Short: Why Not?
34
• Removes one source of bugs
• Not harder than coding mutably
• (once you’re used to it)
Wednesday, January 18, 2012
![Page 75: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/75.jpg)
In Short: Why Not?
34
• Removes one source of bugs
• Not harder than coding mutably
• (once you’re used to it)
• Knowing how to do more is better than knowing how to do less
Wednesday, January 18, 2012
![Page 76: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/76.jpg)
Ruby
35
Wednesday, January 18, 2012
![Page 77: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/77.jpg)
Ruby
35
Wednesday, January 18, 2012
![Page 78: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/78.jpg)
Ruby
35
Haskell
Wednesday, January 18, 2012
![Page 79: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/79.jpg)
Ruby
35
Haskell
Wednesday, January 18, 2012
![Page 80: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/80.jpg)
Ruby
35
Haskell Always Lazy
Wednesday, January 18, 2012
![Page 81: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/81.jpg)
Ruby
35
Haskell Always Lazy
Mostly Eager
Wednesday, January 18, 2012
![Page 82: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/82.jpg)
Some Lazy Ruby
36
Wednesday, January 18, 2012
![Page 83: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/83.jpg)
37
Some Lazy Ruby
Wednesday, January 18, 2012
![Page 84: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/84.jpg)
37
Only a few special Ruby operators are lazy
Some Lazy Ruby
Wednesday, January 18, 2012
![Page 85: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/85.jpg)
And Why Not?
38
Wednesday, January 18, 2012
![Page 86: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/86.jpg)
And Why Not?
39
Wednesday, January 18, 2012
![Page 87: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/87.jpg)
40
a=
Wednesday, January 18, 2012
![Page 88: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/88.jpg)
40
a=
Wednesday, January 18, 2012
![Page 89: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/89.jpg)
40
a=
a
a
Wednesday, January 18, 2012
![Page 90: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/90.jpg)
40
a=
a
a
Wednesday, January 18, 2012
![Page 91: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/91.jpg)
40
a=
a
a
Wednesday, January 18, 2012
![Page 92: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/92.jpg)
40
a=
a
a
Wednesday, January 18, 2012
![Page 93: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/93.jpg)
40
a=
a
a
OneLessThing
toWorryAbout
Wednesday, January 18, 2012
![Page 94: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/94.jpg)
41
Wednesday, January 18, 2012
![Page 95: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/95.jpg)
42
a=
a
a
free(a)
Wednesday, January 18, 2012
![Page 96: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/96.jpg)
42
a=
a
a
Wednesday, January 18, 2012
![Page 97: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/97.jpg)
43
a
a
a=
Wednesday, January 18, 2012
![Page 98: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/98.jpg)
44
Wednesday, January 18, 2012
![Page 99: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/99.jpg)
44
OMG!!! As Big As Garbage
Collection???
Wednesday, January 18, 2012
![Page 100: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/100.jpg)
44
OMG!!! As Big As Garbage
Collection???CalculationsYou Trace
Through Time
Wednesday, January 18, 2012
![Page 101: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/101.jpg)
44
OMG!!! As Big As Garbage
Collection???Resources You
ConsumeAs Needed
CalculationsYou Trace
Through Time
Wednesday, January 18, 2012
![Page 102: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/102.jpg)
45
Lazy Sequences
Wednesday, January 18, 2012
![Page 103: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/103.jpg)
45
Lazy Sequences
Wednesday, January 18, 2012
![Page 104: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/104.jpg)
45
Lazy Sequences
Wednesday, January 18, 2012
![Page 105: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/105.jpg)
46
Don’t LikeWhat You Get With Lazy Sequences
Wednesday, January 18, 2012
![Page 106: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/106.jpg)
46
How toMake theNext One
Don’t LikeWhat You Get With Lazy Sequences
Wednesday, January 18, 2012
![Page 107: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/107.jpg)
46
How toMake theNext One
Don’t LikeWhat You Get With Lazy Sequences
Wednesday, January 18, 2012
![Page 108: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/108.jpg)
46
How toMake theNext One
WhichOnes
Don’t LikeWhat You Get With Lazy Sequences
Wednesday, January 18, 2012
![Page 109: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/109.jpg)
46
How toMake theNext One
WhichOnes
Don’t LikeWhat You Get With Lazy Sequences
Wednesday, January 18, 2012
![Page 110: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/110.jpg)
LikeWhat You Get With Lazy Sequences
Wednesday, January 18, 2012
![Page 111: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/111.jpg)
LikeWhat You Get With Lazy Sequences
Wednesday, January 18, 2012
![Page 112: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/112.jpg)
LikeWhat You Get With Lazy Sequences
How toMake the Next One
Wednesday, January 18, 2012
![Page 113: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/113.jpg)
LikeWhat You Get With Lazy Sequences
How toMake the Next One
WhichOnes
Wednesday, January 18, 2012
![Page 114: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/114.jpg)
48
github.com/marick/stunted
Google groups:rubyfoopers
Wednesday, January 18, 2012
![Page 115: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/115.jpg)
object.f(2, 3, 4)
def Float, Integer ...def Integer, Float
f.(2.0, 2)
49
Wednesday, January 18, 2012
![Page 116: Ruby after 18+ months of Clojure](https://reader033.vdocuments.mx/reader033/viewer/2022061106/5440ff4ab1af9ffb4b8b45c4/html5/thumbnails/116.jpg)
50
Google groups:rubyfoopers
github.com/marick/stunted
ExpressivenessEfficiency
Gems
Wednesday, January 18, 2012