prelude 0.0.2 → 0.0.3
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/CHANGELOG +5 -2
- data/README +3 -3
- data/Rakefile +44 -25
- data/doc/classes/Kernel.html +198 -0
- data/doc/classes/Prelude.html +110 -3
- data/doc/classes/Prelude/EmptyListError.html +113 -0
- data/doc/classes/Prelude/List.html +1210 -1067
- data/doc/classes/Prelude/MissingFunctionError.html +113 -0
- data/doc/classes/Prelude/Monad.html +114 -57
- data/doc/classes/Prelude/Tuple.html +18 -18
- data/doc/classes/Proc.html +51 -26
- data/doc/classes/Symbol.html +65 -12
- data/doc/created.rid +1 -1
- data/doc/files/CHANGELOG.html +8 -1
- data/doc/files/README.html +3 -3
- data/doc/files/lib/prelude_rb.html +1 -1
- data/doc/fr_class_index.html +3 -0
- data/doc/fr_method_index.html +113 -97
- data/lib/prelude.rb +84 -10
- data/lib/prelude/list.rb +244 -212
- data/lib/prelude/monad.rb +88 -11
- data/test/tc_higher.rb +5 -5
- data/test/tc_list.rb +259 -268
- data/test/tc_monad.rb +145 -0
- data/test/ts_prelude.rb +2 -1
- metadata +6 -2
@@ -0,0 +1,113 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>Class: Prelude::MissingFunctionError</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="classHeader">
|
50
|
+
<table class="header-table">
|
51
|
+
<tr class="top-aligned-row">
|
52
|
+
<td><strong>Class</strong></td>
|
53
|
+
<td class="class-name-in-header">Prelude::MissingFunctionError</td>
|
54
|
+
</tr>
|
55
|
+
<tr class="top-aligned-row">
|
56
|
+
<td><strong>In:</strong></td>
|
57
|
+
<td>
|
58
|
+
<a href="../../files/lib/prelude_rb.html">
|
59
|
+
lib/prelude.rb
|
60
|
+
</a>
|
61
|
+
<br />
|
62
|
+
</td>
|
63
|
+
</tr>
|
64
|
+
|
65
|
+
<tr class="top-aligned-row">
|
66
|
+
<td><strong>Parent:</strong></td>
|
67
|
+
<td>
|
68
|
+
RuntimeError
|
69
|
+
</td>
|
70
|
+
</tr>
|
71
|
+
</table>
|
72
|
+
</div>
|
73
|
+
<!-- banner header -->
|
74
|
+
|
75
|
+
<div id="bodyContent">
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
<div id="contextContent">
|
80
|
+
|
81
|
+
<div id="description">
|
82
|
+
<p>
|
83
|
+
Thrown if no function was supplied
|
84
|
+
</p>
|
85
|
+
|
86
|
+
</div>
|
87
|
+
|
88
|
+
|
89
|
+
</div>
|
90
|
+
|
91
|
+
|
92
|
+
</div>
|
93
|
+
|
94
|
+
|
95
|
+
<!-- if includes -->
|
96
|
+
|
97
|
+
<div id="section">
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
<!-- if method_list -->
|
107
|
+
|
108
|
+
|
109
|
+
</div>
|
110
|
+
|
111
|
+
|
112
|
+
</body>
|
113
|
+
</html>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
7
|
<head>
|
8
|
-
<title>
|
8
|
+
<title>Module: Prelude::Monad</title>
|
9
9
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
10
|
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
11
|
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
@@ -49,7 +49,7 @@
|
|
49
49
|
<div id="classHeader">
|
50
50
|
<table class="header-table">
|
51
51
|
<tr class="top-aligned-row">
|
52
|
-
<td><strong>
|
52
|
+
<td><strong>Module</strong></td>
|
53
53
|
<td class="class-name-in-header">Prelude::Monad</td>
|
54
54
|
</tr>
|
55
55
|
<tr class="top-aligned-row">
|
@@ -62,12 +62,6 @@
|
|
62
62
|
</td>
|
63
63
|
</tr>
|
64
64
|
|
65
|
-
<tr class="top-aligned-row">
|
66
|
-
<td><strong>Parent:</strong></td>
|
67
|
-
<td>
|
68
|
-
Array
|
69
|
-
</td>
|
70
|
-
</tr>
|
71
65
|
</table>
|
72
66
|
</div>
|
73
67
|
<!-- banner header -->
|
@@ -80,11 +74,7 @@
|
|
80
74
|
|
81
75
|
<div id="description">
|
82
76
|
<p>
|
83
|
-
$Id: monad.rb
|
84
|
-
</p>
|
85
|
-
<p>
|
86
|
-
The <a href="Monad.html">Monad</a> is an Array only in an implementation
|
87
|
-
sence of the word
|
77
|
+
$Id: monad.rb 13 2006-09-11 05:19:16Z prelude $
|
88
78
|
</p>
|
89
79
|
|
90
80
|
</div>
|
@@ -96,10 +86,12 @@ sence of the word
|
|
96
86
|
<h3 class="section-bar">Methods</h3>
|
97
87
|
|
98
88
|
<div class="name-list">
|
99
|
-
<a href="#
|
100
|
-
<a href="#
|
101
|
-
<a href="#
|
102
|
-
<a href="#
|
89
|
+
<a href="#M000015"><<</a>
|
90
|
+
<a href="#M000014">bind</a>
|
91
|
+
<a href="#M000012">empty</a>
|
92
|
+
<a href="#M000013">join</a>
|
93
|
+
<a href="#M000011">unwrap</a>
|
94
|
+
<a href="#M000010">wrap</a>
|
103
95
|
</div>
|
104
96
|
</div>
|
105
97
|
|
@@ -111,6 +103,19 @@ sence of the word
|
|
111
103
|
<div id="section">
|
112
104
|
|
113
105
|
|
106
|
+
<div id="constants-list">
|
107
|
+
<h3 class="section-bar">Constants</h3>
|
108
|
+
|
109
|
+
<div class="name-list">
|
110
|
+
<table summary="Constants">
|
111
|
+
<tr class="top-aligned-row context-row">
|
112
|
+
<td class="context-item-name">State</td>
|
113
|
+
<td>=</td>
|
114
|
+
<td class="context-item-value">{}</td>
|
115
|
+
</tr>
|
116
|
+
</table>
|
117
|
+
</div>
|
118
|
+
</div>
|
114
119
|
|
115
120
|
|
116
121
|
|
@@ -119,97 +124,149 @@ sence of the word
|
|
119
124
|
|
120
125
|
<!-- if method_list -->
|
121
126
|
<div id="methods">
|
122
|
-
<h3 class="section-bar">Public
|
127
|
+
<h3 class="section-bar">Public Class methods</h3>
|
123
128
|
|
124
|
-
<div id="method-
|
125
|
-
<a name="
|
129
|
+
<div id="method-M000013" class="method-detail">
|
130
|
+
<a name="M000013"></a>
|
126
131
|
|
127
132
|
<div class="method-heading">
|
128
|
-
<a href="#
|
129
|
-
<span class="method-name">
|
133
|
+
<a href="#M000013" class="method-signature">
|
134
|
+
<span class="method-name">join</span><span class="method-args">(arr)</span>
|
130
135
|
</a>
|
131
136
|
</div>
|
132
137
|
|
133
138
|
<div class="method-description">
|
134
139
|
<p><a class="source-toggle" href="#"
|
135
|
-
onclick="toggleCode('
|
136
|
-
<div class="method-source-code" id="
|
140
|
+
onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
|
141
|
+
<div class="method-source-code" id="M000013-source">
|
137
142
|
<pre>
|
138
143
|
<span class="ruby-comment cmt"># File lib/prelude/monad.rb, line 45</span>
|
139
|
-
45: <span class="ruby-keyword kw">def</span> <span class="ruby-
|
140
|
-
46: <span class="ruby-identifier">
|
141
|
-
47:
|
144
|
+
45: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">Monad</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">arr</span>)
|
145
|
+
46: <span class="ruby-identifier">r</span> = []
|
146
|
+
47: <span class="ruby-identifier">arr</span>.<span class="ruby-identifier">each</span> {<span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> <span class="ruby-identifier">r</span>.<span class="ruby-identifier">push</span> <span class="ruby-operator">*</span><span class="ruby-identifier">a</span>}
|
147
|
+
48: <span class="ruby-identifier">r</span>
|
148
|
+
49: <span class="ruby-keyword kw">end</span>
|
142
149
|
</pre>
|
143
150
|
</div>
|
144
151
|
</div>
|
145
152
|
</div>
|
146
153
|
|
147
|
-
<
|
148
|
-
|
154
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
155
|
+
|
156
|
+
<div id="method-M000015" class="method-detail">
|
157
|
+
<a name="M000015"></a>
|
149
158
|
|
150
159
|
<div class="method-heading">
|
151
|
-
<
|
152
|
-
|
160
|
+
<span class="method-name"><<</span><span class="method-args">(f=nil)</span>
|
161
|
+
</div>
|
162
|
+
|
163
|
+
<div class="method-description">
|
164
|
+
<p>
|
165
|
+
Alias for <a href="Monad.html#M000014">bind</a>
|
166
|
+
</p>
|
167
|
+
</div>
|
168
|
+
</div>
|
169
|
+
|
170
|
+
<div id="method-M000014" class="method-detail">
|
171
|
+
<a name="M000014"></a>
|
172
|
+
|
173
|
+
<div class="method-heading">
|
174
|
+
<a href="#M000014" class="method-signature">
|
175
|
+
<span class="method-name">bind</span><span class="method-args">(f=nil)</span>
|
153
176
|
</a>
|
154
177
|
</div>
|
155
178
|
|
156
179
|
<div class="method-description">
|
157
180
|
<p><a class="source-toggle" href="#"
|
158
|
-
onclick="toggleCode('
|
159
|
-
<div class="method-source-code" id="
|
181
|
+
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
182
|
+
<div class="method-source-code" id="M000014-source">
|
160
183
|
<pre>
|
161
|
-
<span class="ruby-comment cmt"># File lib/prelude/monad.rb, line
|
162
|
-
|
163
|
-
|
164
|
-
|
184
|
+
<span class="ruby-comment cmt"># File lib/prelude/monad.rb, line 51</span>
|
185
|
+
51: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">bind</span>(<span class="ruby-identifier">f</span>=<span class="ruby-keyword kw">nil</span>)
|
186
|
+
52: <span class="ruby-keyword kw">case</span>
|
187
|
+
53: <span class="ruby-keyword kw">when</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Symbol</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Method</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">kind_of?</span>(<span class="ruby-constant">Proc</span>) <span class="ruby-operator">:</span>
|
188
|
+
54: <span class="ruby-constant">State</span>[<span class="ruby-identifier">object_id</span>] = <span class="ruby-identifier">f</span>.<span class="ruby-identifier">to_proc</span>.<span class="ruby-identifier">call</span>(<span class="ruby-constant">State</span>[<span class="ruby-identifier">object_id</span>])
|
189
|
+
55: <span class="ruby-keyword kw">self</span>
|
190
|
+
56:
|
191
|
+
57: <span class="ruby-comment cmt"># when f.kind_of?(Proc) :</span>
|
192
|
+
58: <span class="ruby-comment cmt"># State[object_id] = f.call(State[object_id])</span>
|
193
|
+
59: <span class="ruby-comment cmt"># self</span>
|
194
|
+
60:
|
195
|
+
61: <span class="ruby-keyword kw">else</span>
|
196
|
+
62: <span class="ruby-identifier">f</span>
|
197
|
+
63: <span class="ruby-keyword kw">end</span> <span class="ruby-comment cmt"># case</span>
|
198
|
+
64: <span class="ruby-keyword kw">end</span>
|
165
199
|
</pre>
|
166
200
|
</div>
|
167
201
|
</div>
|
168
202
|
</div>
|
169
203
|
|
170
|
-
<div id="method-
|
171
|
-
<a name="
|
204
|
+
<div id="method-M000012" class="method-detail">
|
205
|
+
<a name="M000012"></a>
|
172
206
|
|
173
207
|
<div class="method-heading">
|
174
|
-
<a href="#
|
175
|
-
<span class="method-name">
|
208
|
+
<a href="#M000012" class="method-signature">
|
209
|
+
<span class="method-name">empty</span><span class="method-args">()</span>
|
176
210
|
</a>
|
177
211
|
</div>
|
178
212
|
|
179
213
|
<div class="method-description">
|
180
214
|
<p><a class="source-toggle" href="#"
|
181
|
-
onclick="toggleCode('
|
182
|
-
<div class="method-source-code" id="
|
215
|
+
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
216
|
+
<div class="method-source-code" id="M000012-source">
|
183
217
|
<pre>
|
184
|
-
<span class="ruby-comment cmt"># File lib/prelude/monad.rb, line
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
42: <span class="ruby-identifier">r</span>
|
218
|
+
<span class="ruby-comment cmt"># File lib/prelude/monad.rb, line 40</span>
|
219
|
+
40: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">empty</span>
|
220
|
+
41: <span class="ruby-constant">State</span>[<span class="ruby-identifier">object_id</span>] = <span class="ruby-keyword kw">nil</span>
|
221
|
+
42: <span class="ruby-keyword kw">self</span>
|
189
222
|
43: <span class="ruby-keyword kw">end</span>
|
190
223
|
</pre>
|
191
224
|
</div>
|
192
225
|
</div>
|
193
226
|
</div>
|
194
227
|
|
195
|
-
<div id="method-
|
196
|
-
<a name="
|
228
|
+
<div id="method-M000011" class="method-detail">
|
229
|
+
<a name="M000011"></a>
|
197
230
|
|
198
231
|
<div class="method-heading">
|
199
|
-
<a href="#
|
200
|
-
<span class="method-name">
|
232
|
+
<a href="#M000011" class="method-signature">
|
233
|
+
<span class="method-name">unwrap</span><span class="method-args">()</span>
|
201
234
|
</a>
|
202
235
|
</div>
|
203
236
|
|
204
237
|
<div class="method-description">
|
205
238
|
<p><a class="source-toggle" href="#"
|
206
|
-
onclick="toggleCode('
|
207
|
-
<div class="method-source-code" id="
|
239
|
+
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
240
|
+
<div class="method-source-code" id="M000011-source">
|
241
|
+
<pre>
|
242
|
+
<span class="ruby-comment cmt"># File lib/prelude/monad.rb, line 36</span>
|
243
|
+
36: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unwrap</span>
|
244
|
+
37: <span class="ruby-constant">State</span>[<span class="ruby-identifier">object_id</span>]
|
245
|
+
38: <span class="ruby-keyword kw">end</span>
|
246
|
+
</pre>
|
247
|
+
</div>
|
248
|
+
</div>
|
249
|
+
</div>
|
250
|
+
|
251
|
+
<div id="method-M000010" class="method-detail">
|
252
|
+
<a name="M000010"></a>
|
253
|
+
|
254
|
+
<div class="method-heading">
|
255
|
+
<a href="#M000010" class="method-signature">
|
256
|
+
<span class="method-name">wrap</span><span class="method-args">()</span>
|
257
|
+
</a>
|
258
|
+
</div>
|
259
|
+
|
260
|
+
<div class="method-description">
|
261
|
+
<p><a class="source-toggle" href="#"
|
262
|
+
onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
|
263
|
+
<div class="method-source-code" id="M000010-source">
|
208
264
|
<pre>
|
209
265
|
<span class="ruby-comment cmt"># File lib/prelude/monad.rb, line 31</span>
|
210
|
-
31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wrap</span>
|
211
|
-
32: [<span class="ruby-identifier">
|
212
|
-
33:
|
266
|
+
31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">wrap</span>
|
267
|
+
32: <span class="ruby-constant">State</span>[<span class="ruby-identifier">object_id</span>] = <span class="ruby-keyword kw">self</span>
|
268
|
+
33: <span class="ruby-keyword kw">self</span>
|
269
|
+
34: <span class="ruby-keyword kw">end</span>
|
213
270
|
</pre>
|
214
271
|
</div>
|
215
272
|
</div>
|
@@ -96,9 +96,9 @@ considered an implementation inheritance.
|
|
96
96
|
<h3 class="section-bar">Methods</h3>
|
97
97
|
|
98
98
|
<div class="name-list">
|
99
|
-
<a href="#
|
100
|
-
<a href="#
|
101
|
-
<a href="#
|
99
|
+
<a href="#M000110">fst</a>
|
100
|
+
<a href="#M000109">new</a>
|
101
|
+
<a href="#M000111">snd</a>
|
102
102
|
</div>
|
103
103
|
</div>
|
104
104
|
|
@@ -120,19 +120,19 @@ considered an implementation inheritance.
|
|
120
120
|
<div id="methods">
|
121
121
|
<h3 class="section-bar">Public Class methods</h3>
|
122
122
|
|
123
|
-
<div id="method-
|
124
|
-
<a name="
|
123
|
+
<div id="method-M000109" class="method-detail">
|
124
|
+
<a name="M000109"></a>
|
125
125
|
|
126
126
|
<div class="method-heading">
|
127
|
-
<a href="#
|
127
|
+
<a href="#M000109" class="method-signature">
|
128
128
|
<span class="method-name">new</span><span class="method-args">(*args)</span>
|
129
129
|
</a>
|
130
130
|
</div>
|
131
131
|
|
132
132
|
<div class="method-description">
|
133
133
|
<p><a class="source-toggle" href="#"
|
134
|
-
onclick="toggleCode('
|
135
|
-
<div class="method-source-code" id="
|
134
|
+
onclick="toggleCode('M000109-source');return false;">[Source]</a></p>
|
135
|
+
<div class="method-source-code" id="M000109-source">
|
136
136
|
<pre>
|
137
137
|
<span class="ruby-comment cmt"># File lib/prelude/tuple.rb, line 31</span>
|
138
138
|
31: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
|
@@ -160,19 +160,19 @@ considered an implementation inheritance.
|
|
160
160
|
|
161
161
|
<h3 class="section-bar">Public Instance methods</h3>
|
162
162
|
|
163
|
-
<div id="method-
|
164
|
-
<a name="
|
163
|
+
<div id="method-M000110" class="method-detail">
|
164
|
+
<a name="M000110"></a>
|
165
165
|
|
166
166
|
<div class="method-heading">
|
167
|
-
<a href="#
|
167
|
+
<a href="#M000110" class="method-signature">
|
168
168
|
<span class="method-name">fst</span><span class="method-args">()</span>
|
169
169
|
</a>
|
170
170
|
</div>
|
171
171
|
|
172
172
|
<div class="method-description">
|
173
173
|
<p><a class="source-toggle" href="#"
|
174
|
-
onclick="toggleCode('
|
175
|
-
<div class="method-source-code" id="
|
174
|
+
onclick="toggleCode('M000110-source');return false;">[Source]</a></p>
|
175
|
+
<div class="method-source-code" id="M000110-source">
|
176
176
|
<pre>
|
177
177
|
<span class="ruby-comment cmt"># File lib/prelude/tuple.rb, line 50</span>
|
178
178
|
50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fst</span>
|
@@ -183,19 +183,19 @@ considered an implementation inheritance.
|
|
183
183
|
</div>
|
184
184
|
</div>
|
185
185
|
|
186
|
-
<div id="method-
|
187
|
-
<a name="
|
186
|
+
<div id="method-M000111" class="method-detail">
|
187
|
+
<a name="M000111"></a>
|
188
188
|
|
189
189
|
<div class="method-heading">
|
190
|
-
<a href="#
|
190
|
+
<a href="#M000111" class="method-signature">
|
191
191
|
<span class="method-name">snd</span><span class="method-args">()</span>
|
192
192
|
</a>
|
193
193
|
</div>
|
194
194
|
|
195
195
|
<div class="method-description">
|
196
196
|
<p><a class="source-toggle" href="#"
|
197
|
-
onclick="toggleCode('
|
198
|
-
<div class="method-source-code" id="
|
197
|
+
onclick="toggleCode('M000111-source');return false;">[Source]</a></p>
|
198
|
+
<div class="method-source-code" id="M000111-source">
|
199
199
|
<pre>
|
200
200
|
<span class="ruby-comment cmt"># File lib/prelude/tuple.rb, line 54</span>
|
201
201
|
54: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">snd</span>
|