hamster 0.3.10 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|