hamster 0.3.10 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.rdoc +10 -0
- data/README.rdoc +13 -10
- data/lib/hamster.rb +2 -1
- data/lib/hamster.rbc +165 -0
- data/lib/hamster/core_ext.rbc +69 -0
- data/lib/hamster/core_ext/enumerable.rbc +636 -0
- data/lib/hamster/core_ext/io.rbc +616 -0
- data/lib/hamster/enumerable.rb +141 -0
- data/lib/hamster/experimental/mutable_hash.rb +34 -0
- data/lib/hamster/experimental/mutable_queue.rb +34 -0
- data/lib/hamster/experimental/mutable_set.rb +46 -0
- data/lib/hamster/experimental/mutable_stack.rb +35 -0
- data/lib/hamster/{read_copy_update.rb → experimental/read_copy_update.rb} +4 -5
- data/lib/hamster/hash.rb +1 -0
- data/lib/hamster/hash.rbc +4429 -0
- data/lib/hamster/immutable.rbc +1609 -0
- data/lib/hamster/list.rb +4 -109
- data/lib/hamster/list.rbc +15710 -0
- data/lib/hamster/queue.rbc +1842 -0
- data/lib/hamster/set.rb +6 -111
- data/lib/hamster/set.rbc +7780 -0
- data/lib/hamster/sorter.rb +2 -2
- data/lib/hamster/sorter.rbc +371 -0
- data/lib/hamster/stack.rbc +1627 -0
- data/lib/hamster/trie.rbc +3527 -0
- data/lib/hamster/tuple.rbc +873 -0
- data/lib/hamster/undefined.rbc +258 -0
- data/lib/hamster/vector.rb +157 -0
- data/lib/hamster/version.rb +1 -1
- data/lib/hamster/version.rbc +136 -0
- data/spec/hamster/core_ext/io_spec.rb +2 -2
- data/spec/hamster/experimental/mutable_set/add?_spec.rb +47 -0
- data/spec/hamster/experimental/mutable_set/add_spec.rb +51 -0
- data/spec/hamster/experimental/mutable_set/delete?_spec.rb +47 -0
- data/spec/hamster/experimental/mutable_set/delete_spec.rb +47 -0
- data/spec/hamster/experimental/mutable_stack/pop_spec.rb +41 -0
- data/spec/hamster/experimental/mutable_stack/push_spec.rb +41 -0
- data/spec/hamster/hash/put_spec.rb +2 -2
- data/spec/hamster/list/each_with_index_spec.rb +42 -0
- data/spec/hamster/list/head_spec.rb +0 -12
- data/spec/hamster/set/construction_spec.rb +16 -4
- data/spec/hamster/set/filter_spec.rb +16 -0
- data/spec/hamster/set/flatten_spec.rb +13 -2
- data/spec/hamster/stack/pop_spec.rb +2 -24
- data/spec/hamster/vector/add_spec.rb +41 -0
- data/spec/hamster/vector/any_spec.rb +67 -0
- data/spec/hamster/vector/clear_spec.rb +36 -0
- data/spec/hamster/vector/copying_spec.rb +32 -0
- data/spec/hamster/vector/each_spec.rb +46 -0
- data/spec/hamster/vector/each_with_index_spec.rb +42 -0
- data/spec/hamster/vector/empty_spec.rb +35 -0
- data/spec/hamster/vector/eql_spec.rb +65 -0
- data/spec/hamster/vector/filter_spec.rb +63 -0
- data/spec/hamster/vector/first_spec.rb +35 -0
- data/spec/hamster/vector/get_spec.rb +81 -0
- data/spec/hamster/vector/include_spec.rb +45 -0
- data/spec/hamster/vector/inspect_spec.rb +31 -0
- data/spec/hamster/vector/last_spec.rb +32 -0
- data/spec/hamster/vector/reduce_spec.rb +87 -0
- data/spec/hamster/vector/set_spec.rb +153 -0
- data/spec/hamster/vector/size_spec.rb +27 -0
- data/spec/hamster/vector/to_a_spec.rb +42 -0
- data/spec/hamster/vector/to_ary_spec.rb +44 -0
- data/spec/spec_helper.rb +2 -2
- data/tasks/bundler.rb +2 -0
- data/tasks/publish.rb +1 -1
- data/tasks/rspec.rb +1 -2
- metadata +56 -14
- data/lib/hamster/read_copy_update_hash.rb +0 -28
- data/lib/hamster/read_copy_update_list.rb +0 -26
- data/lib/hamster/read_copy_update_queue.rb +0 -27
- data/lib/hamster/read_copy_update_set.rb +0 -26
- data/lib/hamster/read_copy_update_stack.rb +0 -27
data/History.rdoc
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
=== 0.4.0 / 2010-12-13
|
2
|
+
|
3
|
+
* Added initial implementation of Vector for efficient indexed access.
|
4
|
+
|
5
|
+
* Fix car/cdr so they work on Ruby 1.8.7 (Tianyi Cui)
|
6
|
+
|
7
|
+
=== 0.3.10 / 2010-10-22
|
8
|
+
|
9
|
+
* Update to RSpec 2.
|
10
|
+
|
1
11
|
=== 0.3.9 / 2010-06-02
|
2
12
|
|
3
13
|
* Implement Hash#values.
|
data/README.rdoc
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
= Hamster - Efficient, Immutable, Thread-Safe Collection classes for Ruby
|
2
2
|
|
3
|
-
GitHub:
|
4
|
-
|
5
|
-
email:
|
6
|
-
IRC:
|
3
|
+
GitHub: http://github.com/harukizaemon/hamster
|
4
|
+
RubyGems: https://rubygems.org/gems/hamster
|
5
|
+
email: haruki_zaemon@mac.com
|
6
|
+
IRC: #haruki_zaemon on freenode
|
7
7
|
|
8
8
|
== Introduction
|
9
9
|
|
10
|
-
Hamster started out as an implementation of Hash Array Mapped
|
10
|
+
Hamster started out as an implementation of Hash Array Mapped Tries (HAMT) for Ruby (see http://lamp.epfl.ch/papers/idealhashtrees.pdf) and has since expanded to include implementations of other Persistent Data Structures (see http://en.wikipedia.org/wiki/Persistent_data_structure) including Set, List, Stack, and Queue.
|
11
11
|
|
12
12
|
Hamster collections are immutable. Whenever you modify a Hamster collection, the original is preserved and a modified copy is returned. This makes them inherently thread-safe and sharable. (For an interesting perspective on why immutability itself is inherently a good thing, you might like to take a look at Matthias Felleisen's Function Objects presentation: http://www.ccs.neu.edu/home/matthias/Presentations/ecoop2004.pdf)
|
13
13
|
|
@@ -15,11 +15,11 @@ Hamster collection classes remain space efficient by making use of some very wel
|
|
15
15
|
|
16
16
|
Hamster collections are almost always closed under a given operation. That is, whereas Ruby's collection methods always return arrays, Hamster collections will return an instance of the same class wherever possible.
|
17
17
|
|
18
|
-
And lastly, Hamster lists are lazy -- where Ruby's language constructs permit -- making it possible to, among other things, process "infinitely large" lists. (Note: Ruby 1.9 supports a form of laziness using Enumerator
|
18
|
+
And lastly, Hamster lists are lazy -- where Ruby's language constructs permit -- making it possible to, among other things, process "infinitely large" lists. (Note: Ruby 1.9 supports a form of laziness using Enumerator. However, they're implemented using Fibers which unfortunately can't be shared across threads.)
|
19
19
|
|
20
20
|
== Installation
|
21
21
|
|
22
|
-
Hamster is distributed as a gem via
|
22
|
+
Hamster is distributed as a gem via rubygems (http://rubygems.org/gems/hamster) or as source via GitHub (http://github.com/harukizaemon/hamster).
|
23
23
|
|
24
24
|
Installation via the gem is easy:
|
25
25
|
|
@@ -31,15 +31,16 @@ Once installed, all that remains is to make the collection classes available in
|
|
31
31
|
|
32
32
|
If you prefer, you can instead require individual classes as necessary:
|
33
33
|
|
34
|
-
require 'hamster/hash'
|
35
|
-
require 'hamster/set'
|
36
34
|
require 'hamster/list'
|
37
35
|
require 'hamster/stack'
|
38
36
|
require 'hamster/queue'
|
37
|
+
require 'hamster/hash'
|
38
|
+
require 'hamster/set'
|
39
|
+
require 'hamster/vector'
|
39
40
|
|
40
41
|
== Examples
|
41
42
|
|
42
|
-
Most Hamster classes support an API that resembles their standard library counterpart with the caveat that any modification returns a new instance. What follows are some simple examples to help illustrate this point.
|
43
|
+
Most Hamster classes support an API that resembles their standard library counterpart, with the caveat that any modification returns a new instance. What follows are some simple examples to help illustrate this point.
|
43
44
|
|
44
45
|
=== Hash
|
45
46
|
|
@@ -163,6 +164,8 @@ How is this even possible? It's possible because <tt>IO#to_list</tt> creates a l
|
|
163
164
|
|
164
165
|
=== Queue
|
165
166
|
|
167
|
+
=== Vector
|
168
|
+
|
166
169
|
== Disclaimer
|
167
170
|
|
168
171
|
Hamster started out as a spike to prove a point and has since morphed into something I actually use. My primary concern has been to round out the functionality with good test coverage and clean, readable code.
|
data/lib/hamster.rb
CHANGED
data/lib/hamster.rbc
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
!RBIX
|
2
|
+
0
|
3
|
+
x
|
4
|
+
M
|
5
|
+
1
|
6
|
+
n
|
7
|
+
n
|
8
|
+
x
|
9
|
+
10
|
10
|
+
__script__
|
11
|
+
i
|
12
|
+
74
|
13
|
+
5
|
14
|
+
7
|
15
|
+
0
|
16
|
+
64
|
17
|
+
47
|
18
|
+
49
|
19
|
+
1
|
20
|
+
1
|
21
|
+
15
|
22
|
+
5
|
23
|
+
7
|
24
|
+
2
|
25
|
+
64
|
26
|
+
47
|
27
|
+
49
|
28
|
+
1
|
29
|
+
1
|
30
|
+
15
|
31
|
+
5
|
32
|
+
7
|
33
|
+
3
|
34
|
+
64
|
35
|
+
47
|
36
|
+
49
|
37
|
+
1
|
38
|
+
1
|
39
|
+
15
|
40
|
+
5
|
41
|
+
7
|
42
|
+
4
|
43
|
+
64
|
44
|
+
47
|
45
|
+
49
|
46
|
+
1
|
47
|
+
1
|
48
|
+
15
|
49
|
+
5
|
50
|
+
7
|
51
|
+
5
|
52
|
+
64
|
53
|
+
47
|
54
|
+
49
|
55
|
+
1
|
56
|
+
1
|
57
|
+
15
|
58
|
+
5
|
59
|
+
7
|
60
|
+
6
|
61
|
+
64
|
62
|
+
47
|
63
|
+
49
|
64
|
+
1
|
65
|
+
1
|
66
|
+
15
|
67
|
+
5
|
68
|
+
7
|
69
|
+
7
|
70
|
+
64
|
71
|
+
47
|
72
|
+
49
|
73
|
+
1
|
74
|
+
1
|
75
|
+
15
|
76
|
+
5
|
77
|
+
7
|
78
|
+
8
|
79
|
+
64
|
80
|
+
47
|
81
|
+
49
|
82
|
+
1
|
83
|
+
1
|
84
|
+
15
|
85
|
+
2
|
86
|
+
11
|
87
|
+
I
|
88
|
+
2
|
89
|
+
I
|
90
|
+
0
|
91
|
+
I
|
92
|
+
0
|
93
|
+
I
|
94
|
+
0
|
95
|
+
n
|
96
|
+
p
|
97
|
+
9
|
98
|
+
s
|
99
|
+
16
|
100
|
+
hamster/core_ext
|
101
|
+
x
|
102
|
+
7
|
103
|
+
require
|
104
|
+
s
|
105
|
+
17
|
106
|
+
hamster/immutable
|
107
|
+
s
|
108
|
+
12
|
109
|
+
hamster/list
|
110
|
+
s
|
111
|
+
13
|
112
|
+
hamster/stack
|
113
|
+
s
|
114
|
+
13
|
115
|
+
hamster/queue
|
116
|
+
s
|
117
|
+
11
|
118
|
+
hamster/set
|
119
|
+
s
|
120
|
+
12
|
121
|
+
hamster/hash
|
122
|
+
s
|
123
|
+
15
|
124
|
+
hamster/version
|
125
|
+
p
|
126
|
+
17
|
127
|
+
I
|
128
|
+
0
|
129
|
+
I
|
130
|
+
1
|
131
|
+
I
|
132
|
+
9
|
133
|
+
I
|
134
|
+
2
|
135
|
+
I
|
136
|
+
12
|
137
|
+
I
|
138
|
+
3
|
139
|
+
I
|
140
|
+
1b
|
141
|
+
I
|
142
|
+
4
|
143
|
+
I
|
144
|
+
24
|
145
|
+
I
|
146
|
+
5
|
147
|
+
I
|
148
|
+
2d
|
149
|
+
I
|
150
|
+
6
|
151
|
+
I
|
152
|
+
36
|
153
|
+
I
|
154
|
+
7
|
155
|
+
I
|
156
|
+
3f
|
157
|
+
I
|
158
|
+
8
|
159
|
+
I
|
160
|
+
4a
|
161
|
+
x
|
162
|
+
52
|
163
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster.rb
|
164
|
+
p
|
165
|
+
0
|
@@ -0,0 +1,69 @@
|
|
1
|
+
!RBIX
|
2
|
+
0
|
3
|
+
x
|
4
|
+
M
|
5
|
+
1
|
6
|
+
n
|
7
|
+
n
|
8
|
+
x
|
9
|
+
10
|
10
|
+
__script__
|
11
|
+
i
|
12
|
+
20
|
13
|
+
5
|
14
|
+
7
|
15
|
+
0
|
16
|
+
64
|
17
|
+
47
|
18
|
+
49
|
19
|
+
1
|
20
|
+
1
|
21
|
+
15
|
22
|
+
5
|
23
|
+
7
|
24
|
+
2
|
25
|
+
64
|
26
|
+
47
|
27
|
+
49
|
28
|
+
1
|
29
|
+
1
|
30
|
+
15
|
31
|
+
2
|
32
|
+
11
|
33
|
+
I
|
34
|
+
2
|
35
|
+
I
|
36
|
+
0
|
37
|
+
I
|
38
|
+
0
|
39
|
+
I
|
40
|
+
0
|
41
|
+
n
|
42
|
+
p
|
43
|
+
3
|
44
|
+
s
|
45
|
+
27
|
46
|
+
hamster/core_ext/enumerable
|
47
|
+
x
|
48
|
+
7
|
49
|
+
require
|
50
|
+
s
|
51
|
+
19
|
52
|
+
hamster/core_ext/io
|
53
|
+
p
|
54
|
+
5
|
55
|
+
I
|
56
|
+
0
|
57
|
+
I
|
58
|
+
1
|
59
|
+
I
|
60
|
+
9
|
61
|
+
I
|
62
|
+
2
|
63
|
+
I
|
64
|
+
14
|
65
|
+
x
|
66
|
+
61
|
67
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster/core_ext.rb
|
68
|
+
p
|
69
|
+
0
|
@@ -0,0 +1,636 @@
|
|
1
|
+
!RBIX
|
2
|
+
0
|
3
|
+
x
|
4
|
+
M
|
5
|
+
1
|
6
|
+
n
|
7
|
+
n
|
8
|
+
x
|
9
|
+
10
|
10
|
+
__script__
|
11
|
+
i
|
12
|
+
63
|
13
|
+
5
|
14
|
+
7
|
15
|
+
0
|
16
|
+
64
|
17
|
+
47
|
18
|
+
49
|
19
|
+
1
|
20
|
+
1
|
21
|
+
15
|
22
|
+
99
|
23
|
+
7
|
24
|
+
2
|
25
|
+
65
|
26
|
+
49
|
27
|
+
3
|
28
|
+
2
|
29
|
+
13
|
30
|
+
99
|
31
|
+
12
|
32
|
+
7
|
33
|
+
4
|
34
|
+
12
|
35
|
+
7
|
36
|
+
5
|
37
|
+
12
|
38
|
+
65
|
39
|
+
12
|
40
|
+
49
|
41
|
+
6
|
42
|
+
4
|
43
|
+
15
|
44
|
+
49
|
45
|
+
4
|
46
|
+
0
|
47
|
+
15
|
48
|
+
99
|
49
|
+
7
|
50
|
+
7
|
51
|
+
65
|
52
|
+
49
|
53
|
+
3
|
54
|
+
2
|
55
|
+
13
|
56
|
+
99
|
57
|
+
12
|
58
|
+
7
|
59
|
+
4
|
60
|
+
12
|
61
|
+
7
|
62
|
+
8
|
63
|
+
12
|
64
|
+
65
|
65
|
+
12
|
66
|
+
49
|
67
|
+
6
|
68
|
+
4
|
69
|
+
15
|
70
|
+
49
|
71
|
+
4
|
72
|
+
0
|
73
|
+
15
|
74
|
+
2
|
75
|
+
11
|
76
|
+
I
|
77
|
+
6
|
78
|
+
I
|
79
|
+
0
|
80
|
+
I
|
81
|
+
0
|
82
|
+
I
|
83
|
+
0
|
84
|
+
n
|
85
|
+
p
|
86
|
+
9
|
87
|
+
s
|
88
|
+
12
|
89
|
+
hamster/list
|
90
|
+
x
|
91
|
+
7
|
92
|
+
require
|
93
|
+
x
|
94
|
+
7
|
95
|
+
Hamster
|
96
|
+
x
|
97
|
+
11
|
98
|
+
open_module
|
99
|
+
x
|
100
|
+
15
|
101
|
+
__module_init__
|
102
|
+
M
|
103
|
+
1
|
104
|
+
n
|
105
|
+
n
|
106
|
+
x
|
107
|
+
7
|
108
|
+
Hamster
|
109
|
+
i
|
110
|
+
28
|
111
|
+
5
|
112
|
+
66
|
113
|
+
99
|
114
|
+
7
|
115
|
+
0
|
116
|
+
65
|
117
|
+
49
|
118
|
+
1
|
119
|
+
2
|
120
|
+
13
|
121
|
+
99
|
122
|
+
12
|
123
|
+
7
|
124
|
+
2
|
125
|
+
12
|
126
|
+
7
|
127
|
+
3
|
128
|
+
12
|
129
|
+
65
|
130
|
+
12
|
131
|
+
49
|
132
|
+
4
|
133
|
+
4
|
134
|
+
15
|
135
|
+
49
|
136
|
+
2
|
137
|
+
0
|
138
|
+
11
|
139
|
+
I
|
140
|
+
6
|
141
|
+
I
|
142
|
+
0
|
143
|
+
I
|
144
|
+
0
|
145
|
+
I
|
146
|
+
0
|
147
|
+
n
|
148
|
+
p
|
149
|
+
5
|
150
|
+
x
|
151
|
+
7
|
152
|
+
CoreExt
|
153
|
+
x
|
154
|
+
11
|
155
|
+
open_module
|
156
|
+
x
|
157
|
+
15
|
158
|
+
__module_init__
|
159
|
+
M
|
160
|
+
1
|
161
|
+
n
|
162
|
+
n
|
163
|
+
x
|
164
|
+
7
|
165
|
+
CoreExt
|
166
|
+
i
|
167
|
+
28
|
168
|
+
5
|
169
|
+
66
|
170
|
+
99
|
171
|
+
7
|
172
|
+
0
|
173
|
+
65
|
174
|
+
49
|
175
|
+
1
|
176
|
+
2
|
177
|
+
13
|
178
|
+
99
|
179
|
+
12
|
180
|
+
7
|
181
|
+
2
|
182
|
+
12
|
183
|
+
7
|
184
|
+
3
|
185
|
+
12
|
186
|
+
65
|
187
|
+
12
|
188
|
+
49
|
189
|
+
4
|
190
|
+
4
|
191
|
+
15
|
192
|
+
49
|
193
|
+
2
|
194
|
+
0
|
195
|
+
11
|
196
|
+
I
|
197
|
+
6
|
198
|
+
I
|
199
|
+
0
|
200
|
+
I
|
201
|
+
0
|
202
|
+
I
|
203
|
+
0
|
204
|
+
n
|
205
|
+
p
|
206
|
+
5
|
207
|
+
x
|
208
|
+
10
|
209
|
+
Enumerable
|
210
|
+
x
|
211
|
+
11
|
212
|
+
open_module
|
213
|
+
x
|
214
|
+
15
|
215
|
+
__module_init__
|
216
|
+
M
|
217
|
+
1
|
218
|
+
n
|
219
|
+
n
|
220
|
+
x
|
221
|
+
10
|
222
|
+
Enumerable
|
223
|
+
i
|
224
|
+
13
|
225
|
+
5
|
226
|
+
66
|
227
|
+
99
|
228
|
+
7
|
229
|
+
0
|
230
|
+
7
|
231
|
+
1
|
232
|
+
65
|
233
|
+
5
|
234
|
+
49
|
235
|
+
2
|
236
|
+
4
|
237
|
+
11
|
238
|
+
I
|
239
|
+
5
|
240
|
+
I
|
241
|
+
0
|
242
|
+
I
|
243
|
+
0
|
244
|
+
I
|
245
|
+
0
|
246
|
+
n
|
247
|
+
p
|
248
|
+
3
|
249
|
+
x
|
250
|
+
8
|
251
|
+
included
|
252
|
+
M
|
253
|
+
1
|
254
|
+
n
|
255
|
+
n
|
256
|
+
x
|
257
|
+
8
|
258
|
+
included
|
259
|
+
i
|
260
|
+
8
|
261
|
+
20
|
262
|
+
0
|
263
|
+
56
|
264
|
+
0
|
265
|
+
50
|
266
|
+
1
|
267
|
+
0
|
268
|
+
11
|
269
|
+
I
|
270
|
+
3
|
271
|
+
I
|
272
|
+
1
|
273
|
+
I
|
274
|
+
1
|
275
|
+
I
|
276
|
+
1
|
277
|
+
n
|
278
|
+
p
|
279
|
+
2
|
280
|
+
M
|
281
|
+
1
|
282
|
+
p
|
283
|
+
2
|
284
|
+
x
|
285
|
+
9
|
286
|
+
for_block
|
287
|
+
t
|
288
|
+
n
|
289
|
+
x
|
290
|
+
8
|
291
|
+
included
|
292
|
+
i
|
293
|
+
14
|
294
|
+
99
|
295
|
+
7
|
296
|
+
0
|
297
|
+
7
|
298
|
+
1
|
299
|
+
65
|
300
|
+
67
|
301
|
+
49
|
302
|
+
2
|
303
|
+
0
|
304
|
+
49
|
305
|
+
3
|
306
|
+
4
|
307
|
+
11
|
308
|
+
I
|
309
|
+
6
|
310
|
+
I
|
311
|
+
0
|
312
|
+
I
|
313
|
+
0
|
314
|
+
I
|
315
|
+
0
|
316
|
+
I
|
317
|
+
-2
|
318
|
+
p
|
319
|
+
4
|
320
|
+
x
|
321
|
+
7
|
322
|
+
to_list
|
323
|
+
M
|
324
|
+
1
|
325
|
+
n
|
326
|
+
n
|
327
|
+
x
|
328
|
+
7
|
329
|
+
to_list
|
330
|
+
i
|
331
|
+
17
|
332
|
+
45
|
333
|
+
0
|
334
|
+
1
|
335
|
+
19
|
336
|
+
0
|
337
|
+
15
|
338
|
+
5
|
339
|
+
56
|
340
|
+
2
|
341
|
+
47
|
342
|
+
50
|
343
|
+
3
|
344
|
+
0
|
345
|
+
15
|
346
|
+
20
|
347
|
+
0
|
348
|
+
11
|
349
|
+
I
|
350
|
+
3
|
351
|
+
I
|
352
|
+
1
|
353
|
+
I
|
354
|
+
0
|
355
|
+
I
|
356
|
+
0
|
357
|
+
n
|
358
|
+
p
|
359
|
+
4
|
360
|
+
x
|
361
|
+
9
|
362
|
+
EmptyList
|
363
|
+
n
|
364
|
+
M
|
365
|
+
1
|
366
|
+
p
|
367
|
+
2
|
368
|
+
x
|
369
|
+
9
|
370
|
+
for_block
|
371
|
+
t
|
372
|
+
n
|
373
|
+
x
|
374
|
+
7
|
375
|
+
to_list
|
376
|
+
i
|
377
|
+
16
|
378
|
+
57
|
379
|
+
19
|
380
|
+
0
|
381
|
+
15
|
382
|
+
21
|
383
|
+
1
|
384
|
+
0
|
385
|
+
20
|
386
|
+
0
|
387
|
+
49
|
388
|
+
0
|
389
|
+
1
|
390
|
+
22
|
391
|
+
1
|
392
|
+
0
|
393
|
+
11
|
394
|
+
I
|
395
|
+
4
|
396
|
+
I
|
397
|
+
1
|
398
|
+
I
|
399
|
+
1
|
400
|
+
I
|
401
|
+
1
|
402
|
+
n
|
403
|
+
p
|
404
|
+
1
|
405
|
+
x
|
406
|
+
4
|
407
|
+
cons
|
408
|
+
p
|
409
|
+
3
|
410
|
+
I
|
411
|
+
0
|
412
|
+
I
|
413
|
+
d
|
414
|
+
I
|
415
|
+
10
|
416
|
+
x
|
417
|
+
72
|
418
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster/core_ext/enumerable.rb
|
419
|
+
p
|
420
|
+
1
|
421
|
+
x
|
422
|
+
4
|
423
|
+
item
|
424
|
+
x
|
425
|
+
12
|
426
|
+
reverse_each
|
427
|
+
p
|
428
|
+
9
|
429
|
+
I
|
430
|
+
0
|
431
|
+
I
|
432
|
+
b
|
433
|
+
I
|
434
|
+
0
|
435
|
+
I
|
436
|
+
c
|
437
|
+
I
|
438
|
+
6
|
439
|
+
I
|
440
|
+
d
|
441
|
+
I
|
442
|
+
e
|
443
|
+
I
|
444
|
+
e
|
445
|
+
I
|
446
|
+
11
|
447
|
+
x
|
448
|
+
72
|
449
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster/core_ext/enumerable.rb
|
450
|
+
p
|
451
|
+
1
|
452
|
+
x
|
453
|
+
4
|
454
|
+
list
|
455
|
+
x
|
456
|
+
17
|
457
|
+
method_visibility
|
458
|
+
x
|
459
|
+
15
|
460
|
+
add_defn_method
|
461
|
+
p
|
462
|
+
5
|
463
|
+
I
|
464
|
+
0
|
465
|
+
I
|
466
|
+
a
|
467
|
+
I
|
468
|
+
0
|
469
|
+
I
|
470
|
+
b
|
471
|
+
I
|
472
|
+
e
|
473
|
+
x
|
474
|
+
72
|
475
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster/core_ext/enumerable.rb
|
476
|
+
p
|
477
|
+
0
|
478
|
+
x
|
479
|
+
10
|
480
|
+
class_eval
|
481
|
+
p
|
482
|
+
5
|
483
|
+
I
|
484
|
+
0
|
485
|
+
I
|
486
|
+
9
|
487
|
+
I
|
488
|
+
0
|
489
|
+
I
|
490
|
+
a
|
491
|
+
I
|
492
|
+
8
|
493
|
+
x
|
494
|
+
72
|
495
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster/core_ext/enumerable.rb
|
496
|
+
p
|
497
|
+
1
|
498
|
+
x
|
499
|
+
4
|
500
|
+
base
|
501
|
+
x
|
502
|
+
13
|
503
|
+
attach_method
|
504
|
+
p
|
505
|
+
3
|
506
|
+
I
|
507
|
+
2
|
508
|
+
I
|
509
|
+
9
|
510
|
+
I
|
511
|
+
d
|
512
|
+
x
|
513
|
+
72
|
514
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster/core_ext/enumerable.rb
|
515
|
+
p
|
516
|
+
0
|
517
|
+
x
|
518
|
+
13
|
519
|
+
attach_method
|
520
|
+
p
|
521
|
+
3
|
522
|
+
I
|
523
|
+
2
|
524
|
+
I
|
525
|
+
7
|
526
|
+
I
|
527
|
+
1c
|
528
|
+
x
|
529
|
+
72
|
530
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster/core_ext/enumerable.rb
|
531
|
+
p
|
532
|
+
0
|
533
|
+
x
|
534
|
+
13
|
535
|
+
attach_method
|
536
|
+
p
|
537
|
+
3
|
538
|
+
I
|
539
|
+
2
|
540
|
+
I
|
541
|
+
5
|
542
|
+
I
|
543
|
+
1c
|
544
|
+
x
|
545
|
+
72
|
546
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster/core_ext/enumerable.rb
|
547
|
+
p
|
548
|
+
0
|
549
|
+
x
|
550
|
+
13
|
551
|
+
attach_method
|
552
|
+
x
|
553
|
+
10
|
554
|
+
Enumerable
|
555
|
+
M
|
556
|
+
1
|
557
|
+
n
|
558
|
+
n
|
559
|
+
x
|
560
|
+
10
|
561
|
+
Enumerable
|
562
|
+
i
|
563
|
+
15
|
564
|
+
5
|
565
|
+
66
|
566
|
+
5
|
567
|
+
45
|
568
|
+
0
|
569
|
+
1
|
570
|
+
43
|
571
|
+
2
|
572
|
+
43
|
573
|
+
3
|
574
|
+
47
|
575
|
+
49
|
576
|
+
4
|
577
|
+
1
|
578
|
+
11
|
579
|
+
I
|
580
|
+
2
|
581
|
+
I
|
582
|
+
0
|
583
|
+
I
|
584
|
+
0
|
585
|
+
I
|
586
|
+
0
|
587
|
+
n
|
588
|
+
p
|
589
|
+
5
|
590
|
+
x
|
591
|
+
7
|
592
|
+
Hamster
|
593
|
+
n
|
594
|
+
x
|
595
|
+
7
|
596
|
+
CoreExt
|
597
|
+
x
|
598
|
+
10
|
599
|
+
Enumerable
|
600
|
+
x
|
601
|
+
7
|
602
|
+
include
|
603
|
+
p
|
604
|
+
3
|
605
|
+
I
|
606
|
+
2
|
607
|
+
I
|
608
|
+
1c
|
609
|
+
I
|
610
|
+
f
|
611
|
+
x
|
612
|
+
72
|
613
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster/core_ext/enumerable.rb
|
614
|
+
p
|
615
|
+
0
|
616
|
+
p
|
617
|
+
7
|
618
|
+
I
|
619
|
+
0
|
620
|
+
I
|
621
|
+
1
|
622
|
+
I
|
623
|
+
9
|
624
|
+
I
|
625
|
+
3
|
626
|
+
I
|
627
|
+
23
|
628
|
+
I
|
629
|
+
1a
|
630
|
+
I
|
631
|
+
3f
|
632
|
+
x
|
633
|
+
72
|
634
|
+
/Users/haruki_zaemon/Projects/hamster/lib/hamster/core_ext/enumerable.rb
|
635
|
+
p
|
636
|
+
0
|