prelude 0.0.1 → 0.0.2
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 +11 -3
- data/COPYING +410 -247
- data/README +139 -9
- data/Rakefile +22 -19
- data/doc/classes/Prelude.html +134 -0
- data/doc/classes/Prelude/List.html +2549 -0
- data/doc/classes/Prelude/Monad.html +226 -0
- data/doc/classes/Prelude/Tuple.html +217 -0
- data/doc/classes/Proc.html +173 -0
- data/doc/classes/Symbol.html +166 -0
- data/doc/created.rid +1 -0
- data/doc/files/CHANGELOG.html +115 -0
- data/doc/files/README.html +328 -0
- data/doc/files/TODO.html +95 -0
- data/doc/files/lib/prelude/list_rb.html +83 -0
- data/doc/files/lib/prelude/monad_rb.html +83 -0
- data/doc/files/lib/prelude/tuple_rb.html +83 -0
- data/doc/files/lib/prelude_rb.html +98 -0
- data/doc/fr_class_index.html +32 -0
- data/doc/fr_file_index.html +33 -0
- data/doc/fr_method_index.html +124 -0
- data/doc/index.html +27 -0
- data/doc/rdoc-style.css +208 -0
- data/lib/prelude.rb +12 -15
- data/lib/prelude/list.rb +115 -131
- data/lib/prelude/monad.rb +31 -19
- data/lib/prelude/tuple.rb +27 -31
- data/test/tc_higher.rb +11 -11
- data/test/tc_list.rb +29 -15
- data/test/tc_tuple.rb +49 -11
- data/test/ts_prelude.rb +11 -11
- metadata +27 -3
data/README
CHANGED
@@ -1,28 +1,144 @@
|
|
1
1
|
= Prelude - a Haskell-like functional library
|
2
2
|
|
3
|
-
$Id: README
|
3
|
+
$Id: README 7 2006-09-06 17:03:26Z prelude $
|
4
4
|
|
5
|
-
|
5
|
+
*WARNING* <tt>The project is still in a very preliminary state. Only
|
6
|
+
List was partially implemented. Feel free to contribute.</tt>
|
6
7
|
|
7
|
-
|
8
|
+
Project home is at http://rubyforge.org/projects/prelude/
|
8
9
|
|
9
|
-
==
|
10
|
+
== The goal
|
11
|
+
|
12
|
+
The general idea is that functional programming provides many
|
13
|
+
benefits, which are not directly available in Ruby out of the
|
14
|
+
box. This library will, hopefully, provide an infrastructure for the
|
15
|
+
use of most Haskell's functional idioms. It will also facilitate a
|
16
|
+
more or less direct port to Ruby of algorithms and data structures
|
17
|
+
already developed by functional community. I deem infinite lists,
|
18
|
+
monads, and higher-level functions to be most useful functional
|
19
|
+
contribution to the general purpose programming.
|
10
20
|
|
11
|
-
|
21
|
+
I do believe the old math's maxim that "new notation leads to new
|
22
|
+
results."
|
12
23
|
|
13
24
|
== Features
|
14
25
|
|
26
|
+
As of right now, i.e., release 0.0.x, the feature list is pretty much
|
27
|
+
a wish list, so treat it accordingly.
|
28
|
+
|
15
29
|
=== Rather curious collection of operations on lists
|
16
30
|
|
17
|
-
|
31
|
+
Haskell's lists are different from Ruby's arrays in many ways. First
|
32
|
+
of all, there are more operations defined on lists and the naming
|
33
|
+
convention is different. Since Haskell's (or Lisp's) lists play a
|
34
|
+
fundamental role in everything functional, their implementation seems
|
35
|
+
necessary. Here are the goals for list's implementation:
|
36
|
+
|
37
|
+
* Most, if not all, functions, i.e., +head+, +tail+, +last+, +first+, +concat+, etc.
|
38
|
+
|
39
|
+
* Assignment compatibility with Ruby's native arrays. For example,
|
40
|
+
these operations should be correct:
|
41
|
+
|
42
|
+
List a = List.new([1, 2, 3])
|
43
|
+
b = [3, 4, 5]
|
44
|
+
List c = a+b
|
45
|
+
a[1] = 10
|
46
|
+
b[2] = a[3]
|
47
|
+
a << 3 << 4
|
48
|
+
...and so on.
|
49
|
+
|
50
|
+
* List comprehension. It's mostly covered by Ruby's own functionality,
|
51
|
+
but some semantic refinements may be needed.
|
52
|
+
|
53
|
+
* Infinite lists. It might look like this:
|
54
|
+
|
55
|
+
List ones = List.new([1]) { ones } # => [1,... ]
|
56
|
+
ones.take 3 # => [1, 1, 1]
|
57
|
+
|
58
|
+
This functionality is being developed by the Lazilists project, see
|
59
|
+
http://lazylist.rubyforge.org
|
60
|
+
|
61
|
+
* What else?
|
62
|
+
|
63
|
+
=== Reinforced Ruby's Lambda-calculus
|
64
|
+
|
65
|
+
While implementing majority of the Lambda world is relatively trivial
|
66
|
+
in Ruby, some of the recursive beauty might be lost. Consider +foldl+,
|
67
|
+
for example. The classic recursive definition like this
|
68
|
+
|
69
|
+
def foldl(s, &block)
|
70
|
+
empty? ? s : tail.foldl(block.call(s, head), &block)
|
71
|
+
end
|
72
|
+
|
73
|
+
croaks on about 800+ elements integer lists, but more rubyish and
|
74
|
+
compact
|
75
|
+
|
76
|
+
def foldl(s, &block)
|
77
|
+
inject(s){ |a,b| block.call(a,b) }
|
78
|
+
end
|
79
|
+
|
80
|
+
does not possess any of the classic's functional elegance. It means that
|
81
|
+
for practical applications Ruby's recursions need to be fixed or
|
82
|
+
somehow re-implemented in the Prelude library.
|
83
|
+
|
84
|
+
=== Higher-order functions
|
85
|
+
|
86
|
+
It is a very good thing, that Ruby allows functions to be good
|
87
|
+
citizens including being passed to other functions and returned from
|
88
|
+
them. These need to be added to complete the picture:
|
89
|
+
|
90
|
+
* Function combinations. Consider:
|
91
|
+
|
92
|
+
add5 = proc {|x| x+5}
|
93
|
+
add6 = proc {|x| x+6}
|
94
|
+
add11 = add5 << add6
|
95
|
+
|
96
|
+
I.e., the <tt>add5</tt> is an absolutely generic algorithm expressed
|
97
|
+
in terms of other functions as long as <tt>add5</tt> takes as an
|
98
|
+
argument and <tt>add6</tt> returns an object for which operation
|
99
|
+
<tt>+</tt> is defined.
|
18
100
|
|
19
|
-
|
101
|
+
* Currying, as in
|
102
|
+
|
103
|
+
add5 = (proc {|x,y,z| x+y+z}).curry(5)
|
104
|
+
add5.call(3, 2) # => 10
|
105
|
+
|
106
|
+
More convenient syntax is desirable.
|
107
|
+
|
108
|
+
* What else?
|
20
109
|
|
21
110
|
=== Monads
|
22
111
|
|
112
|
+
This is where all the previous trouble should start paying off
|
113
|
+
allowing an application to be structured like this:
|
114
|
+
|
115
|
+
result << connect << do_something << delete_something << with(params)
|
116
|
+
|
117
|
+
Writing tutorials for monadic computations became a little industry in
|
118
|
+
itself, see http://nomaware.com/monads/html/index.html to get
|
119
|
+
started. More monadic resources are here:
|
120
|
+
http://haskell.org/haskellwiki/Books_and_tutorials#Using_monads
|
121
|
+
|
122
|
+
=== What else
|
123
|
+
|
124
|
+
These features will be nice to have in a second release of the library:
|
125
|
+
|
126
|
+
* General purpose monadic parser library similar to Parsec, see http://www.cs.uu.nl/~daan/parsec.html
|
127
|
+
|
128
|
+
* Tools for automatic program verification and algebraic proofs
|
129
|
+
|
130
|
+
* What else
|
131
|
+
|
132
|
+
|
133
|
+
== What's in a name
|
134
|
+
|
135
|
+
Since most of the functionality to be implemented here is defined in
|
136
|
+
Haskell's prelude package, the name *Prelude* seemed natural.
|
137
|
+
|
23
138
|
== Download
|
24
139
|
|
25
|
-
The latest Prelude library version can be downloaded from
|
140
|
+
The latest Prelude library version can be downloaded from
|
141
|
+
http://rubyforge.org/frs/?group_id=2096
|
26
142
|
|
27
143
|
|
28
144
|
== Installation
|
@@ -33,7 +149,8 @@ You can install Prelude library with the following command.
|
|
33
149
|
|
34
150
|
== License
|
35
151
|
|
36
|
-
Prelude library is released under the GPL license, see
|
152
|
+
Prelude library is released under the Lesser GPL license, see
|
153
|
+
http://www.gnu.org/licenses/lgpl.txt
|
37
154
|
|
38
155
|
|
39
156
|
== Support
|
@@ -44,4 +161,17 @@ Please use the following:
|
|
44
161
|
* trackers to submit bugs or feature requests, http://rubyforge.org/tracker/?group_id=2096
|
45
162
|
* to contact the author, send mail to prelude rubyforge org
|
46
163
|
|
164
|
+
== References
|
165
|
+
|
166
|
+
The authors of the project were inspired by the following works:
|
167
|
+
|
168
|
+
1. An article, probably by Gavin Sinclair, at http://blogs.pragprog.com/cgi-bin/pragdave.cgi/Tech/Ruby/ToProc.rdoc regarding Symbol#to_proc function in Ruby Extension project, http://extensions.rubyforge.org
|
169
|
+
2. An elaborate port of Perl's Sub::Curry library by Ross Bamford, http://rubyforge.org/projects/rubymurray
|
170
|
+
3. An early implementation of Haskell's lists as Ruby arrays by Hipster (a.k.a. Michel van de Ven). His original sketch can be found at http://www.xs4all.nl/~hipster/lib/ruby/haskell
|
171
|
+
4. An article by Christopher Williams "Late to the Party" posted at http://cwilliams.textdriven.com/pages/monads
|
172
|
+
5. Several articles on monads by MenTaLguY, see http://moonbase.rydia.net/mental/writings/programming/monads-in-ruby/00introduction.html
|
173
|
+
|
174
|
+
|
175
|
+
|
176
|
+
|
47
177
|
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#--
|
2
|
-
# $Id: Rakefile
|
2
|
+
# $Id: Rakefile 7 2006-09-06 17:03:26Z prelude $
|
3
3
|
#
|
4
4
|
# This file is part of the Prelude library that provides tools to
|
5
5
|
# enable Haskell style functional programming in Ruby.
|
@@ -8,19 +8,19 @@
|
|
8
8
|
#
|
9
9
|
# Copyright (C) 2006 APP Design, Inc.
|
10
10
|
#
|
11
|
-
# This
|
12
|
-
# it under the terms of the GNU General Public
|
13
|
-
# the Free Software Foundation; either
|
14
|
-
# (at your option) any later version.
|
11
|
+
# This library is free software; you can redistribute it and/or
|
12
|
+
# modify it under the terms of the GNU Lesser General Public
|
13
|
+
# License as published by the Free Software Foundation; either
|
14
|
+
# version 2.1 of the License, or (at your option) any later version.
|
15
15
|
#
|
16
|
-
# This
|
16
|
+
# This library is distributed in the hope that it will be useful,
|
17
17
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
18
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
19
|
-
#
|
18
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
19
|
+
# Lesser General Public License for more details.
|
20
20
|
#
|
21
|
-
# You should have received a copy of the GNU General Public
|
22
|
-
# with this
|
23
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA
|
21
|
+
# You should have received a copy of the GNU Lesser General Public
|
22
|
+
# License along with this library; if not, write to the Free Software
|
23
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
24
24
|
#++
|
25
25
|
|
26
26
|
require 'rubygems'
|
@@ -54,12 +54,15 @@ Rake::TestTask.new { |t|
|
|
54
54
|
t.verbose = true
|
55
55
|
}
|
56
56
|
|
57
|
+
file 'doc/index.html' => ['misc/rdoc_template.rb' ]
|
58
|
+
task :rdoc => ['doc/index.html']
|
59
|
+
|
57
60
|
# Generate the RDoc documentation
|
58
61
|
Rake::RDocTask.new { |rdoc|
|
59
62
|
rdoc.rdoc_dir = 'doc'
|
60
63
|
rdoc.title = "Prelude -- a Haskell-like library for functional programming"
|
61
|
-
rdoc.options << '--line-numbers' << '--inline-source'
|
62
|
-
rdoc.template =
|
64
|
+
rdoc.options << '--line-numbers' << '--inline-source' << '--main' << 'README'
|
65
|
+
rdoc.template = 'misc/rdoc_template.rb'
|
63
66
|
rdoc.rdoc_files.include('README')
|
64
67
|
rdoc.rdoc_files.include('CHANGELOG')
|
65
68
|
rdoc.rdoc_files.include('TODO')
|
@@ -80,7 +83,7 @@ spec = Gem::Specification.new do |s|
|
|
80
83
|
s.platform = Gem::Platform::RUBY
|
81
84
|
s.name = PKG_NAME
|
82
85
|
s.summary = "Haskell-like functional library"
|
83
|
-
s.description = %q{Enables Ruby programmers to use higher functions, monads, and other Haskell features.}
|
86
|
+
s.description = %q{Enables Ruby programmers to use higher-order functions, monads, and other Haskell features.}
|
84
87
|
s.version = PKG_VERSION
|
85
88
|
|
86
89
|
s.author = "Ivan K. and APP Design, Inc."
|
@@ -93,11 +96,11 @@ spec = Gem::Specification.new do |s|
|
|
93
96
|
s.require_path = 'lib'
|
94
97
|
s.autorequire = 'prelude'
|
95
98
|
|
96
|
-
s.files
|
97
|
-
s.files
|
98
|
-
s.files
|
99
|
-
s.files
|
100
|
-
s.files
|
99
|
+
s.files = [ "Rakefile", "README", "TODO", "CHANGELOG", "COPYING" ]
|
100
|
+
s.files += Dir.glob( "doc/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
101
|
+
s.files += Dir.glob( "examples/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
102
|
+
s.files += Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
103
|
+
s.files += Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
|
101
104
|
|
102
105
|
s.test_files = Dir.glob( "test/**/ts_*rb" ).delete_if { |item| item.include?( "\.svn" ) }
|
103
106
|
|
@@ -0,0 +1,134 @@
|
|
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>Module: Prelude</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>Module</strong></td>
|
53
|
+
<td class="class-name-in-header">Prelude</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
|
+
<a href="../files/lib/prelude/list_rb.html">
|
63
|
+
lib/prelude/list.rb
|
64
|
+
</a>
|
65
|
+
<br />
|
66
|
+
<a href="../files/lib/prelude/monad_rb.html">
|
67
|
+
lib/prelude/monad.rb
|
68
|
+
</a>
|
69
|
+
<br />
|
70
|
+
<a href="../files/lib/prelude/tuple_rb.html">
|
71
|
+
lib/prelude/tuple.rb
|
72
|
+
</a>
|
73
|
+
<br />
|
74
|
+
</td>
|
75
|
+
</tr>
|
76
|
+
|
77
|
+
</table>
|
78
|
+
</div>
|
79
|
+
<!-- banner header -->
|
80
|
+
|
81
|
+
<div id="bodyContent">
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
<div id="contextContent">
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
</div>
|
90
|
+
|
91
|
+
|
92
|
+
</div>
|
93
|
+
|
94
|
+
|
95
|
+
<!-- if includes -->
|
96
|
+
|
97
|
+
<div id="section">
|
98
|
+
|
99
|
+
<div id="class-list">
|
100
|
+
<h3 class="section-bar">Classes and Modules</h3>
|
101
|
+
|
102
|
+
Class <a href="Prelude/List.html" class="link">Prelude::List</a><br />
|
103
|
+
Class <a href="Prelude/Monad.html" class="link">Prelude::Monad</a><br />
|
104
|
+
Class <a href="Prelude/Tuple.html" class="link">Prelude::Tuple</a><br />
|
105
|
+
|
106
|
+
</div>
|
107
|
+
|
108
|
+
<div id="constants-list">
|
109
|
+
<h3 class="section-bar">Constants</h3>
|
110
|
+
|
111
|
+
<div class="name-list">
|
112
|
+
<table summary="Constants">
|
113
|
+
<tr class="top-aligned-row context-row">
|
114
|
+
<td class="context-item-name">VERSION</td>
|
115
|
+
<td>=</td>
|
116
|
+
<td class="context-item-value">'0.0.2'</td>
|
117
|
+
</tr>
|
118
|
+
</table>
|
119
|
+
</div>
|
120
|
+
</div>
|
121
|
+
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
<!-- if method_list -->
|
128
|
+
|
129
|
+
|
130
|
+
</div>
|
131
|
+
|
132
|
+
|
133
|
+
</body>
|
134
|
+
</html>
|
@@ -0,0 +1,2549 @@
|
|
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::List</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::List</td>
|
54
|
+
</tr>
|
55
|
+
<tr class="top-aligned-row">
|
56
|
+
<td><strong>In:</strong></td>
|
57
|
+
<td>
|
58
|
+
<a href="../../files/lib/prelude/list_rb.html">
|
59
|
+
lib/prelude/list.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
|
+
Array
|
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
|
+
$Id: list.rb 7 2006-09-06 17:03:26Z prelude $
|
84
|
+
</p>
|
85
|
+
<p>
|
86
|
+
This eventually needs to be implemented with lazy lists, see <a
|
87
|
+
href="http://lazylist.rubyforge.org">lazylist.rubyforge.org</a> for details
|
88
|
+
</p>
|
89
|
+
<p>
|
90
|
+
I used the signatures of Haskell’s List.hs file in order not to
|
91
|
+
forget to implement the functions defined there and to remind of what was
|
92
|
+
intended.
|
93
|
+
</p>
|
94
|
+
<p>
|
95
|
+
The following methods are implemented by Array with the same semantics:
|
96
|
+
</p>
|
97
|
+
<ul>
|
98
|
+
<li>last — :: [a] -> a
|
99
|
+
|
100
|
+
</li>
|
101
|
+
<li>length — :: [a] -> Int
|
102
|
+
|
103
|
+
</li>
|
104
|
+
<li>map — :: (a -> b) -> [a] -> [b]
|
105
|
+
|
106
|
+
</li>
|
107
|
+
<li>reverse — :: [a] -> [a]
|
108
|
+
|
109
|
+
</li>
|
110
|
+
<li>transpose — :: [[a]] -> [[a]]
|
111
|
+
|
112
|
+
</li>
|
113
|
+
<li>find — :: (a -> Bool) -> [a] -> Maybe a
|
114
|
+
|
115
|
+
</li>
|
116
|
+
<li>partition — :: (a -> Bool) -> [a] -> ([a], [a])
|
117
|
+
|
118
|
+
</li>
|
119
|
+
<li>zip — :: [a] -> [b] -> [(a,b)]
|
120
|
+
|
121
|
+
</li>
|
122
|
+
<li>sort — :: (Ord a) => [a] -> [a]
|
123
|
+
|
124
|
+
</li>
|
125
|
+
</ul>
|
126
|
+
<p>
|
127
|
+
I do not know how to implement these in Ruby:
|
128
|
+
</p>
|
129
|
+
<ul>
|
130
|
+
<li>(!!) — :: [a] -> Int -> a
|
131
|
+
|
132
|
+
</li>
|
133
|
+
<li>(\) — :: (Eq a) => [a] -> [a] -> [a]
|
134
|
+
|
135
|
+
</li>
|
136
|
+
</ul>
|
137
|
+
|
138
|
+
</div>
|
139
|
+
|
140
|
+
|
141
|
+
</div>
|
142
|
+
|
143
|
+
<div id="method-list">
|
144
|
+
<h3 class="section-bar">Methods</h3>
|
145
|
+
|
146
|
+
<div class="name-list">
|
147
|
+
<a href="#M000012">+</a>
|
148
|
+
<a href="#M000031">all</a>
|
149
|
+
<a href="#M000028">and</a>
|
150
|
+
<a href="#M000030">any</a>
|
151
|
+
<a href="#M000058">break</a>
|
152
|
+
<a href="#M000025">concat</a>
|
153
|
+
<a href="#M000027">concatMap</a>
|
154
|
+
<a href="#M000026">concat_map</a>
|
155
|
+
<a href="#M000047">cycle</a>
|
156
|
+
<a href="#M000095">delete</a>
|
157
|
+
<a href="#M000050">drop</a>
|
158
|
+
<a href="#M000056">dropWhile</a>
|
159
|
+
<a href="#M000055">drop_while</a>
|
160
|
+
<a href="#M000066">elem</a>
|
161
|
+
<a href="#M000072">elemIndex</a>
|
162
|
+
<a href="#M000074">elemIndices</a>
|
163
|
+
<a href="#M000071">elem_index</a>
|
164
|
+
<a href="#M000073">elem_indices</a>
|
165
|
+
<a href="#M000018">f_foldl</a>
|
166
|
+
<a href="#M000070">filter</a>
|
167
|
+
<a href="#M000076">findIndex</a>
|
168
|
+
<a href="#M000078">findIndices</a>
|
169
|
+
<a href="#M000075">find_index</a>
|
170
|
+
<a href="#M000077">find_indices</a>
|
171
|
+
<a href="#M000019">foldl</a>
|
172
|
+
<a href="#M000021">foldl1</a>
|
173
|
+
<a href="#M000022">foldl1_</a>
|
174
|
+
<a href="#M000020">foldl_</a>
|
175
|
+
<a href="#M000023">foldr</a>
|
176
|
+
<a href="#M000024">foldr1</a>
|
177
|
+
<a href="#M000059">group</a>
|
178
|
+
<a href="#M000013">head</a>
|
179
|
+
<a href="#M000015">init</a>
|
180
|
+
<a href="#M000060">inits</a>
|
181
|
+
<a href="#M000098">insert</a>
|
182
|
+
<a href="#M000097">intersect</a>
|
183
|
+
<a href="#M000017">intersperse</a>
|
184
|
+
<a href="#M000063">isPrefixOf</a>
|
185
|
+
<a href="#M000065">isSuffixOf</a>
|
186
|
+
<a href="#M000062">is_prefix_of</a>
|
187
|
+
<a href="#M000064">is_suffix_of</a>
|
188
|
+
<a href="#M000044">iterate</a>
|
189
|
+
<a href="#M000090">lines</a>
|
190
|
+
<a href="#M000069">lookup</a>
|
191
|
+
<a href="#M000041">mapAccumL</a>
|
192
|
+
<a href="#M000043">mapAccumR</a>
|
193
|
+
<a href="#M000040">map_accum_l</a>
|
194
|
+
<a href="#M000042">map_accum_r</a>
|
195
|
+
<a href="#M000034">maximum</a>
|
196
|
+
<a href="#M000035">minimum</a>
|
197
|
+
<a href="#M000068">notElem</a>
|
198
|
+
<a href="#M000067">not_elem</a>
|
199
|
+
<a href="#M000094">nub</a>
|
200
|
+
<a href="#M000016">null</a>
|
201
|
+
<a href="#M000029">or</a>
|
202
|
+
<a href="#M000033">product</a>
|
203
|
+
<a href="#M000045">repeat</a>
|
204
|
+
<a href="#M000046">replicate</a>
|
205
|
+
<a href="#M000036">scanl</a>
|
206
|
+
<a href="#M000037">scanl1</a>
|
207
|
+
<a href="#M000038">scanr</a>
|
208
|
+
<a href="#M000039">scanr1</a>
|
209
|
+
<a href="#M000057">span</a>
|
210
|
+
<a href="#M000052">splitAt</a>
|
211
|
+
<a href="#M000051">split_at</a>
|
212
|
+
<a href="#M000032">sum</a>
|
213
|
+
<a href="#M000014">tail</a>
|
214
|
+
<a href="#M000061">tails</a>
|
215
|
+
<a href="#M000049">take</a>
|
216
|
+
<a href="#M000054">takeWhile</a>
|
217
|
+
<a href="#M000053">take_while</a>
|
218
|
+
<a href="#M000048">unfoldr</a>
|
219
|
+
<a href="#M000096">union</a>
|
220
|
+
<a href="#M000092">unlines</a>
|
221
|
+
<a href="#M000093">unwords</a>
|
222
|
+
<a href="#M000087">unzip</a>
|
223
|
+
<a href="#M000088">unzip3</a>
|
224
|
+
<a href="#M000089">unzip4</a>
|
225
|
+
<a href="#M000091">words</a>
|
226
|
+
<a href="#M000079">zip3</a>
|
227
|
+
<a href="#M000080">zip4</a>
|
228
|
+
<a href="#M000082">zipWith</a>
|
229
|
+
<a href="#M000084">zipWith3</a>
|
230
|
+
<a href="#M000086">zipWith4</a>
|
231
|
+
<a href="#M000081">zip_with</a>
|
232
|
+
<a href="#M000083">zip_with3</a>
|
233
|
+
<a href="#M000085">zip_with4</a>
|
234
|
+
</div>
|
235
|
+
</div>
|
236
|
+
|
237
|
+
</div>
|
238
|
+
|
239
|
+
|
240
|
+
<!-- if includes -->
|
241
|
+
|
242
|
+
<div id="section">
|
243
|
+
|
244
|
+
|
245
|
+
|
246
|
+
<div id="aliases-list">
|
247
|
+
<h3 class="section-bar">External Aliases</h3>
|
248
|
+
|
249
|
+
<div class="name-list">
|
250
|
+
<table summary="aliases">
|
251
|
+
<tr class="top-aligned-row context-row">
|
252
|
+
<td class="context-item-name">+</td>
|
253
|
+
<td>-></td>
|
254
|
+
<td class="context-item-value">array_plus</td>
|
255
|
+
</tr>
|
256
|
+
<tr class="top-aligned-row context-row">
|
257
|
+
<td> </td>
|
258
|
+
<td colspan="2" class="context-item-desc">
|
259
|
+
Array compatibility functions
|
260
|
+
|
261
|
+
</td>
|
262
|
+
</tr>
|
263
|
+
</table>
|
264
|
+
</div>
|
265
|
+
</div>
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
<!-- if method_list -->
|
272
|
+
<div id="methods">
|
273
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
274
|
+
|
275
|
+
<div id="method-M000012" class="method-detail">
|
276
|
+
<a name="M000012"></a>
|
277
|
+
|
278
|
+
<div class="method-heading">
|
279
|
+
<a href="#M000012" class="method-signature">
|
280
|
+
<span class="method-name">+</span><span class="method-args">(o)</span>
|
281
|
+
</a>
|
282
|
+
</div>
|
283
|
+
|
284
|
+
<div class="method-description">
|
285
|
+
<p><a class="source-toggle" href="#"
|
286
|
+
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
287
|
+
<div class="method-source-code" id="M000012-source">
|
288
|
+
<pre>
|
289
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 55</span>
|
290
|
+
55: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">+</span>(<span class="ruby-identifier">o</span>)
|
291
|
+
56: <span class="ruby-constant">List</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">array_plus</span>(<span class="ruby-identifier">o</span>))
|
292
|
+
57: <span class="ruby-keyword kw">end</span>
|
293
|
+
</pre>
|
294
|
+
</div>
|
295
|
+
</div>
|
296
|
+
</div>
|
297
|
+
|
298
|
+
<div id="method-M000031" class="method-detail">
|
299
|
+
<a name="M000031"></a>
|
300
|
+
|
301
|
+
<div class="method-heading">
|
302
|
+
<a href="#M000031" class="method-signature">
|
303
|
+
<span class="method-name">all</span><span class="method-args">(&block)</span>
|
304
|
+
</a>
|
305
|
+
</div>
|
306
|
+
|
307
|
+
<div class="method-description">
|
308
|
+
<table>
|
309
|
+
<tr><td valign="top">all — :</td><td>(a -> Bool) -> [a] -> Bool
|
310
|
+
|
311
|
+
</td></tr>
|
312
|
+
</table>
|
313
|
+
<p><a class="source-toggle" href="#"
|
314
|
+
onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
|
315
|
+
<div class="method-source-code" id="M000031-source">
|
316
|
+
<pre>
|
317
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 159</span>
|
318
|
+
159: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
319
|
+
160: <span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">e</span>)}
|
320
|
+
161: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
|
321
|
+
162: <span class="ruby-keyword kw">end</span>
|
322
|
+
</pre>
|
323
|
+
</div>
|
324
|
+
</div>
|
325
|
+
</div>
|
326
|
+
|
327
|
+
<div id="method-M000028" class="method-detail">
|
328
|
+
<a name="M000028"></a>
|
329
|
+
|
330
|
+
<div class="method-heading">
|
331
|
+
<a href="#M000028" class="method-signature">
|
332
|
+
<span class="method-name">and</span><span class="method-args">()</span>
|
333
|
+
</a>
|
334
|
+
</div>
|
335
|
+
|
336
|
+
<div class="method-description">
|
337
|
+
<table>
|
338
|
+
<tr><td valign="top">and — :</td><td>[Bool] -> Bool
|
339
|
+
|
340
|
+
</td></tr>
|
341
|
+
</table>
|
342
|
+
<p><a class="source-toggle" href="#"
|
343
|
+
onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
|
344
|
+
<div class="method-source-code" id="M000028-source">
|
345
|
+
<pre>
|
346
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 143</span>
|
347
|
+
143: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">and</span>
|
348
|
+
144: <span class="ruby-identifier">foldr</span>(<span class="ruby-keyword kw">true</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">x</span>,<span class="ruby-identifier">y</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">y</span>}
|
349
|
+
145: <span class="ruby-keyword kw">end</span>
|
350
|
+
</pre>
|
351
|
+
</div>
|
352
|
+
</div>
|
353
|
+
</div>
|
354
|
+
|
355
|
+
<div id="method-M000030" class="method-detail">
|
356
|
+
<a name="M000030"></a>
|
357
|
+
|
358
|
+
<div class="method-heading">
|
359
|
+
<a href="#M000030" class="method-signature">
|
360
|
+
<span class="method-name">any</span><span class="method-args">(&block)</span>
|
361
|
+
</a>
|
362
|
+
</div>
|
363
|
+
|
364
|
+
<div class="method-description">
|
365
|
+
<table>
|
366
|
+
<tr><td valign="top">any — :</td><td>(a -> Bool) -> [a] -> Bool
|
367
|
+
|
368
|
+
</td></tr>
|
369
|
+
</table>
|
370
|
+
<p><a class="source-toggle" href="#"
|
371
|
+
onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
|
372
|
+
<div class="method-source-code" id="M000030-source">
|
373
|
+
<pre>
|
374
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 153</span>
|
375
|
+
153: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">any</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
376
|
+
154: <span class="ruby-identifier">each</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">e</span>)}
|
377
|
+
155: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
|
378
|
+
156: <span class="ruby-keyword kw">end</span>
|
379
|
+
</pre>
|
380
|
+
</div>
|
381
|
+
</div>
|
382
|
+
</div>
|
383
|
+
|
384
|
+
<div id="method-M000058" class="method-detail">
|
385
|
+
<a name="M000058"></a>
|
386
|
+
|
387
|
+
<div class="method-heading">
|
388
|
+
<a href="#M000058" class="method-signature">
|
389
|
+
<span class="method-name">break</span><span class="method-args">()</span>
|
390
|
+
</a>
|
391
|
+
</div>
|
392
|
+
|
393
|
+
<div class="method-description">
|
394
|
+
<table>
|
395
|
+
<tr><td valign="top">break — :</td><td>(a -> Bool) -> [a] -> ([a], [a])
|
396
|
+
|
397
|
+
</td></tr>
|
398
|
+
</table>
|
399
|
+
<p><a class="source-toggle" href="#"
|
400
|
+
onclick="toggleCode('M000058-source');return false;">[Source]</a></p>
|
401
|
+
<div class="method-source-code" id="M000058-source">
|
402
|
+
<pre>
|
403
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 315</span>
|
404
|
+
315: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">break</span>
|
405
|
+
316: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'break' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
406
|
+
317: <span class="ruby-keyword kw">return</span> []
|
407
|
+
318: <span class="ruby-keyword kw">end</span>
|
408
|
+
</pre>
|
409
|
+
</div>
|
410
|
+
</div>
|
411
|
+
</div>
|
412
|
+
|
413
|
+
<div id="method-M000025" class="method-detail">
|
414
|
+
<a name="M000025"></a>
|
415
|
+
|
416
|
+
<div class="method-heading">
|
417
|
+
<a href="#M000025" class="method-signature">
|
418
|
+
<span class="method-name">concat</span><span class="method-args">()</span>
|
419
|
+
</a>
|
420
|
+
</div>
|
421
|
+
|
422
|
+
<div class="method-description">
|
423
|
+
<p>
|
424
|
+
Implemented by Array but semantics is different
|
425
|
+
</p>
|
426
|
+
<table>
|
427
|
+
<tr><td valign="top">concat — :</td><td>[[a]] -> [a]
|
428
|
+
|
429
|
+
</td></tr>
|
430
|
+
</table>
|
431
|
+
<p><a class="source-toggle" href="#"
|
432
|
+
onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
|
433
|
+
<div class="method-source-code" id="M000025-source">
|
434
|
+
<pre>
|
435
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 131</span>
|
436
|
+
131: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">concat</span>
|
437
|
+
132: <span class="ruby-identifier">flatten</span>
|
438
|
+
133: <span class="ruby-keyword kw">end</span>
|
439
|
+
</pre>
|
440
|
+
</div>
|
441
|
+
</div>
|
442
|
+
</div>
|
443
|
+
|
444
|
+
<div id="method-M000027" class="method-detail">
|
445
|
+
<a name="M000027"></a>
|
446
|
+
|
447
|
+
<div class="method-heading">
|
448
|
+
<span class="method-name">concatMap</span><span class="method-args">()</span>
|
449
|
+
</div>
|
450
|
+
|
451
|
+
<div class="method-description">
|
452
|
+
<p>
|
453
|
+
Alias for <a href="List.html#M000026">concat_map</a>
|
454
|
+
</p>
|
455
|
+
</div>
|
456
|
+
</div>
|
457
|
+
|
458
|
+
<div id="method-M000026" class="method-detail">
|
459
|
+
<a name="M000026"></a>
|
460
|
+
|
461
|
+
<div class="method-heading">
|
462
|
+
<a href="#M000026" class="method-signature">
|
463
|
+
<span class="method-name">concat_map</span><span class="method-args">()</span>
|
464
|
+
</a>
|
465
|
+
</div>
|
466
|
+
|
467
|
+
<div class="method-description">
|
468
|
+
<table>
|
469
|
+
<tr><td valign="top">concatMap — :</td><td>(a -> [b]) -> [a] -> [b]
|
470
|
+
|
471
|
+
</td></tr>
|
472
|
+
</table>
|
473
|
+
<p><a class="source-toggle" href="#"
|
474
|
+
onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
|
475
|
+
<div class="method-source-code" id="M000026-source">
|
476
|
+
<pre>
|
477
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 136</span>
|
478
|
+
136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">concat_map</span>
|
479
|
+
137: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'concatMap' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
480
|
+
138: <span class="ruby-keyword kw">return</span> []
|
481
|
+
139: <span class="ruby-keyword kw">end</span>
|
482
|
+
</pre>
|
483
|
+
</div>
|
484
|
+
</div>
|
485
|
+
</div>
|
486
|
+
|
487
|
+
<div id="method-M000047" class="method-detail">
|
488
|
+
<a name="M000047"></a>
|
489
|
+
|
490
|
+
<div class="method-heading">
|
491
|
+
<a href="#M000047" class="method-signature">
|
492
|
+
<span class="method-name">cycle</span><span class="method-args">()</span>
|
493
|
+
</a>
|
494
|
+
</div>
|
495
|
+
|
496
|
+
<div class="method-description">
|
497
|
+
<table>
|
498
|
+
<tr><td valign="top">cycle — :</td><td>[a] -> [a]
|
499
|
+
|
500
|
+
</td></tr>
|
501
|
+
</table>
|
502
|
+
<p><a class="source-toggle" href="#"
|
503
|
+
onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
|
504
|
+
<div class="method-source-code" id="M000047-source">
|
505
|
+
<pre>
|
506
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 252</span>
|
507
|
+
252: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">cycle</span>
|
508
|
+
253: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'cycle' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
509
|
+
254: <span class="ruby-keyword kw">return</span> []
|
510
|
+
255: <span class="ruby-keyword kw">end</span>
|
511
|
+
</pre>
|
512
|
+
</div>
|
513
|
+
</div>
|
514
|
+
</div>
|
515
|
+
|
516
|
+
<div id="method-M000095" class="method-detail">
|
517
|
+
<a name="M000095"></a>
|
518
|
+
|
519
|
+
<div class="method-heading">
|
520
|
+
<a href="#M000095" class="method-signature">
|
521
|
+
<span class="method-name">delete</span><span class="method-args">(o)</span>
|
522
|
+
</a>
|
523
|
+
</div>
|
524
|
+
|
525
|
+
<div class="method-description">
|
526
|
+
<table>
|
527
|
+
<tr><td valign="top">delete — :</td><td>(Eq a) => a -> [a] -> [a]
|
528
|
+
|
529
|
+
</td></tr>
|
530
|
+
</table>
|
531
|
+
<p>
|
532
|
+
Implemented by Array but semantics is different
|
533
|
+
</p>
|
534
|
+
<p><a class="source-toggle" href="#"
|
535
|
+
onclick="toggleCode('M000095-source');return false;">[Source]</a></p>
|
536
|
+
<div class="method-source-code" id="M000095-source">
|
537
|
+
<pre>
|
538
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 516</span>
|
539
|
+
516: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">delete</span>(<span class="ruby-identifier">o</span>)
|
540
|
+
517: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'delete' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
541
|
+
518: <span class="ruby-keyword kw">return</span> []
|
542
|
+
519: <span class="ruby-keyword kw">end</span>
|
543
|
+
</pre>
|
544
|
+
</div>
|
545
|
+
</div>
|
546
|
+
</div>
|
547
|
+
|
548
|
+
<div id="method-M000050" class="method-detail">
|
549
|
+
<a name="M000050"></a>
|
550
|
+
|
551
|
+
<div class="method-heading">
|
552
|
+
<a href="#M000050" class="method-signature">
|
553
|
+
<span class="method-name">drop</span><span class="method-args">(n)</span>
|
554
|
+
</a>
|
555
|
+
</div>
|
556
|
+
|
557
|
+
<div class="method-description">
|
558
|
+
<table>
|
559
|
+
<tr><td valign="top">drop — :</td><td>Int -> [a] -> [a]
|
560
|
+
|
561
|
+
</td></tr>
|
562
|
+
</table>
|
563
|
+
<p><a class="source-toggle" href="#"
|
564
|
+
onclick="toggleCode('M000050-source');return false;">[Source]</a></p>
|
565
|
+
<div class="method-source-code" id="M000050-source">
|
566
|
+
<pre>
|
567
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 277</span>
|
568
|
+
277: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">drop</span>(<span class="ruby-identifier">n</span>)
|
569
|
+
278: <span class="ruby-keyword kw">self</span>[<span class="ruby-identifier">n</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
|
570
|
+
279: <span class="ruby-keyword kw">end</span>
|
571
|
+
</pre>
|
572
|
+
</div>
|
573
|
+
</div>
|
574
|
+
</div>
|
575
|
+
|
576
|
+
<div id="method-M000056" class="method-detail">
|
577
|
+
<a name="M000056"></a>
|
578
|
+
|
579
|
+
<div class="method-heading">
|
580
|
+
<span class="method-name">dropWhile</span><span class="method-args">()</span>
|
581
|
+
</div>
|
582
|
+
|
583
|
+
<div class="method-description">
|
584
|
+
<p>
|
585
|
+
Alias for <a href="List.html#M000055">drop_while</a>
|
586
|
+
</p>
|
587
|
+
</div>
|
588
|
+
</div>
|
589
|
+
|
590
|
+
<div id="method-M000055" class="method-detail">
|
591
|
+
<a name="M000055"></a>
|
592
|
+
|
593
|
+
<div class="method-heading">
|
594
|
+
<a href="#M000055" class="method-signature">
|
595
|
+
<span class="method-name">drop_while</span><span class="method-args">() {|e| ...}</span>
|
596
|
+
</a>
|
597
|
+
</div>
|
598
|
+
|
599
|
+
<div class="method-description">
|
600
|
+
<table>
|
601
|
+
<tr><td valign="top">dropWhile — :</td><td>(a -> Bool) -> [a] -> [a]
|
602
|
+
|
603
|
+
</td></tr>
|
604
|
+
</table>
|
605
|
+
<p><a class="source-toggle" href="#"
|
606
|
+
onclick="toggleCode('M000055-source');return false;">[Source]</a></p>
|
607
|
+
<div class="method-source-code" id="M000055-source">
|
608
|
+
<pre>
|
609
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 299</span>
|
610
|
+
299: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">drop_while</span>
|
611
|
+
300: <span class="ruby-identifier">r</span> = []
|
612
|
+
301: <span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
|
613
|
+
302: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">e</span>)
|
614
|
+
303: <span class="ruby-identifier">r</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">e</span>
|
615
|
+
304: }
|
616
|
+
305: <span class="ruby-identifier">r</span>
|
617
|
+
306: <span class="ruby-keyword kw">end</span>
|
618
|
+
</pre>
|
619
|
+
</div>
|
620
|
+
</div>
|
621
|
+
</div>
|
622
|
+
|
623
|
+
<div id="method-M000066" class="method-detail">
|
624
|
+
<a name="M000066"></a>
|
625
|
+
|
626
|
+
<div class="method-heading">
|
627
|
+
<a href="#M000066" class="method-signature">
|
628
|
+
<span class="method-name">elem</span><span class="method-args">()</span>
|
629
|
+
</a>
|
630
|
+
</div>
|
631
|
+
|
632
|
+
<div class="method-description">
|
633
|
+
<table>
|
634
|
+
<tr><td valign="top">elem — :</td><td>a -> [a] -> Bool
|
635
|
+
|
636
|
+
</td></tr>
|
637
|
+
</table>
|
638
|
+
<p><a class="source-toggle" href="#"
|
639
|
+
onclick="toggleCode('M000066-source');return false;">[Source]</a></p>
|
640
|
+
<div class="method-source-code" id="M000066-source">
|
641
|
+
<pre>
|
642
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 359</span>
|
643
|
+
359: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">elem</span>
|
644
|
+
360: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'elem' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
645
|
+
361: <span class="ruby-keyword kw">return</span> []
|
646
|
+
362: <span class="ruby-keyword kw">end</span>
|
647
|
+
</pre>
|
648
|
+
</div>
|
649
|
+
</div>
|
650
|
+
</div>
|
651
|
+
|
652
|
+
<div id="method-M000072" class="method-detail">
|
653
|
+
<a name="M000072"></a>
|
654
|
+
|
655
|
+
<div class="method-heading">
|
656
|
+
<span class="method-name">elemIndex</span><span class="method-args">()</span>
|
657
|
+
</div>
|
658
|
+
|
659
|
+
<div class="method-description">
|
660
|
+
<p>
|
661
|
+
Alias for <a href="List.html#M000071">elem_index</a>
|
662
|
+
</p>
|
663
|
+
</div>
|
664
|
+
</div>
|
665
|
+
|
666
|
+
<div id="method-M000074" class="method-detail">
|
667
|
+
<a name="M000074"></a>
|
668
|
+
|
669
|
+
<div class="method-heading">
|
670
|
+
<span class="method-name">elemIndices</span><span class="method-args">()</span>
|
671
|
+
</div>
|
672
|
+
|
673
|
+
<div class="method-description">
|
674
|
+
<p>
|
675
|
+
Alias for <a href="List.html#M000073">elem_indices</a>
|
676
|
+
</p>
|
677
|
+
</div>
|
678
|
+
</div>
|
679
|
+
|
680
|
+
<div id="method-M000071" class="method-detail">
|
681
|
+
<a name="M000071"></a>
|
682
|
+
|
683
|
+
<div class="method-heading">
|
684
|
+
<a href="#M000071" class="method-signature">
|
685
|
+
<span class="method-name">elem_index</span><span class="method-args">()</span>
|
686
|
+
</a>
|
687
|
+
</div>
|
688
|
+
|
689
|
+
<div class="method-description">
|
690
|
+
<table>
|
691
|
+
<tr><td valign="top">elemIndex — :</td><td>(Eq a) => a -> [a] -> Maybe Int
|
692
|
+
|
693
|
+
</td></tr>
|
694
|
+
</table>
|
695
|
+
<p><a class="source-toggle" href="#"
|
696
|
+
onclick="toggleCode('M000071-source');return false;">[Source]</a></p>
|
697
|
+
<div class="method-source-code" id="M000071-source">
|
698
|
+
<pre>
|
699
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 393</span>
|
700
|
+
393: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">elem_index</span>
|
701
|
+
394: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'elem_index' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
702
|
+
395: <span class="ruby-keyword kw">return</span> []
|
703
|
+
396: <span class="ruby-keyword kw">end</span>
|
704
|
+
</pre>
|
705
|
+
</div>
|
706
|
+
</div>
|
707
|
+
</div>
|
708
|
+
|
709
|
+
<div id="method-M000073" class="method-detail">
|
710
|
+
<a name="M000073"></a>
|
711
|
+
|
712
|
+
<div class="method-heading">
|
713
|
+
<a href="#M000073" class="method-signature">
|
714
|
+
<span class="method-name">elem_indices</span><span class="method-args">()</span>
|
715
|
+
</a>
|
716
|
+
</div>
|
717
|
+
|
718
|
+
<div class="method-description">
|
719
|
+
<table>
|
720
|
+
<tr><td valign="top">elemIndices — :</td><td>(Eq a) => a -> [a] -> [Int]
|
721
|
+
|
722
|
+
</td></tr>
|
723
|
+
</table>
|
724
|
+
<p><a class="source-toggle" href="#"
|
725
|
+
onclick="toggleCode('M000073-source');return false;">[Source]</a></p>
|
726
|
+
<div class="method-source-code" id="M000073-source">
|
727
|
+
<pre>
|
728
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 400</span>
|
729
|
+
400: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">elem_indices</span>
|
730
|
+
401: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'elem_indices' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
731
|
+
402: <span class="ruby-keyword kw">return</span> []
|
732
|
+
403: <span class="ruby-keyword kw">end</span>
|
733
|
+
</pre>
|
734
|
+
</div>
|
735
|
+
</div>
|
736
|
+
</div>
|
737
|
+
|
738
|
+
<div id="method-M000018" class="method-detail">
|
739
|
+
<a name="M000018"></a>
|
740
|
+
|
741
|
+
<div class="method-heading">
|
742
|
+
<a href="#M000018" class="method-signature">
|
743
|
+
<span class="method-name">f_foldl</span><span class="method-args">(s, &block)</span>
|
744
|
+
</a>
|
745
|
+
</div>
|
746
|
+
|
747
|
+
<div class="method-description">
|
748
|
+
<p>
|
749
|
+
Classic recursive functional definition causes stack overflow for arrays of
|
750
|
+
any usable size… So don’t use it, it’s here for
|
751
|
+
demonstration purposes only. Use <a href="List.html#M000019">foldl</a>.
|
752
|
+
</p>
|
753
|
+
<p><a class="source-toggle" href="#"
|
754
|
+
onclick="toggleCode('M000018-source');return false;">[Source]</a></p>
|
755
|
+
<div class="method-source-code" id="M000018-source">
|
756
|
+
<pre>
|
757
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 90</span>
|
758
|
+
90: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">f_foldl</span>(<span class="ruby-identifier">s</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
759
|
+
91: <span class="ruby-identifier">empty?</span> <span class="ruby-value">? </span><span class="ruby-identifier">s</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">tail</span>.<span class="ruby-identifier">f_foldl</span>(<span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">s</span>, <span class="ruby-identifier">head</span>), <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
760
|
+
92: <span class="ruby-keyword kw">end</span>
|
761
|
+
</pre>
|
762
|
+
</div>
|
763
|
+
</div>
|
764
|
+
</div>
|
765
|
+
|
766
|
+
<div id="method-M000070" class="method-detail">
|
767
|
+
<a name="M000070"></a>
|
768
|
+
|
769
|
+
<div class="method-heading">
|
770
|
+
<a href="#M000070" class="method-signature">
|
771
|
+
<span class="method-name">filter</span><span class="method-args">()</span>
|
772
|
+
</a>
|
773
|
+
</div>
|
774
|
+
|
775
|
+
<div class="method-description">
|
776
|
+
<table>
|
777
|
+
<tr><td valign="top">filter — :</td><td>(a -> Bool) -> [a] -> [a]
|
778
|
+
|
779
|
+
</td></tr>
|
780
|
+
</table>
|
781
|
+
<p><a class="source-toggle" href="#"
|
782
|
+
onclick="toggleCode('M000070-source');return false;">[Source]</a></p>
|
783
|
+
<div class="method-source-code" id="M000070-source">
|
784
|
+
<pre>
|
785
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 380</span>
|
786
|
+
380: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">filter</span>
|
787
|
+
381: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'filter' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
788
|
+
382: <span class="ruby-keyword kw">return</span> []
|
789
|
+
383: <span class="ruby-keyword kw">end</span>
|
790
|
+
</pre>
|
791
|
+
</div>
|
792
|
+
</div>
|
793
|
+
</div>
|
794
|
+
|
795
|
+
<div id="method-M000076" class="method-detail">
|
796
|
+
<a name="M000076"></a>
|
797
|
+
|
798
|
+
<div class="method-heading">
|
799
|
+
<span class="method-name">findIndex</span><span class="method-args">()</span>
|
800
|
+
</div>
|
801
|
+
|
802
|
+
<div class="method-description">
|
803
|
+
<p>
|
804
|
+
Alias for <a href="List.html#M000075">find_index</a>
|
805
|
+
</p>
|
806
|
+
</div>
|
807
|
+
</div>
|
808
|
+
|
809
|
+
<div id="method-M000078" class="method-detail">
|
810
|
+
<a name="M000078"></a>
|
811
|
+
|
812
|
+
<div class="method-heading">
|
813
|
+
<span class="method-name">findIndices</span><span class="method-args">()</span>
|
814
|
+
</div>
|
815
|
+
|
816
|
+
<div class="method-description">
|
817
|
+
<p>
|
818
|
+
Alias for <a href="List.html#M000077">find_indices</a>
|
819
|
+
</p>
|
820
|
+
</div>
|
821
|
+
</div>
|
822
|
+
|
823
|
+
<div id="method-M000075" class="method-detail">
|
824
|
+
<a name="M000075"></a>
|
825
|
+
|
826
|
+
<div class="method-heading">
|
827
|
+
<a href="#M000075" class="method-signature">
|
828
|
+
<span class="method-name">find_index</span><span class="method-args">()</span>
|
829
|
+
</a>
|
830
|
+
</div>
|
831
|
+
|
832
|
+
<div class="method-description">
|
833
|
+
<table>
|
834
|
+
<tr><td valign="top">findIndex — :</td><td>(a -> Bool) -> [a] -> Maybe Int
|
835
|
+
|
836
|
+
</td></tr>
|
837
|
+
</table>
|
838
|
+
<p><a class="source-toggle" href="#"
|
839
|
+
onclick="toggleCode('M000075-source');return false;">[Source]</a></p>
|
840
|
+
<div class="method-source-code" id="M000075-source">
|
841
|
+
<pre>
|
842
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 407</span>
|
843
|
+
407: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_index</span>
|
844
|
+
408: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'find_index' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
845
|
+
409: <span class="ruby-keyword kw">return</span> []
|
846
|
+
410: <span class="ruby-keyword kw">end</span>
|
847
|
+
</pre>
|
848
|
+
</div>
|
849
|
+
</div>
|
850
|
+
</div>
|
851
|
+
|
852
|
+
<div id="method-M000077" class="method-detail">
|
853
|
+
<a name="M000077"></a>
|
854
|
+
|
855
|
+
<div class="method-heading">
|
856
|
+
<a href="#M000077" class="method-signature">
|
857
|
+
<span class="method-name">find_indices</span><span class="method-args">()</span>
|
858
|
+
</a>
|
859
|
+
</div>
|
860
|
+
|
861
|
+
<div class="method-description">
|
862
|
+
<table>
|
863
|
+
<tr><td valign="top">findIndices — :</td><td>(a -> Bool) -> [a] -> [Int]
|
864
|
+
|
865
|
+
</td></tr>
|
866
|
+
</table>
|
867
|
+
<p><a class="source-toggle" href="#"
|
868
|
+
onclick="toggleCode('M000077-source');return false;">[Source]</a></p>
|
869
|
+
<div class="method-source-code" id="M000077-source">
|
870
|
+
<pre>
|
871
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 414</span>
|
872
|
+
414: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">find_indices</span>
|
873
|
+
415: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'find_indices' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
874
|
+
416: <span class="ruby-keyword kw">return</span> []
|
875
|
+
417: <span class="ruby-keyword kw">end</span>
|
876
|
+
</pre>
|
877
|
+
</div>
|
878
|
+
</div>
|
879
|
+
</div>
|
880
|
+
|
881
|
+
<div id="method-M000019" class="method-detail">
|
882
|
+
<a name="M000019"></a>
|
883
|
+
|
884
|
+
<div class="method-heading">
|
885
|
+
<a href="#M000019" class="method-signature">
|
886
|
+
<span class="method-name">foldl</span><span class="method-args">(s, &block)</span>
|
887
|
+
</a>
|
888
|
+
</div>
|
889
|
+
|
890
|
+
<div class="method-description">
|
891
|
+
<p>
|
892
|
+
This is a more pedestrian iterative version of <a
|
893
|
+
href="List.html#M000018">f_foldl</a>
|
894
|
+
</p>
|
895
|
+
<table>
|
896
|
+
<tr><td valign="top">foldl — :</td><td>(a -> b -> a) -> a -> [b] -> a
|
897
|
+
|
898
|
+
</td></tr>
|
899
|
+
</table>
|
900
|
+
<p><a class="source-toggle" href="#"
|
901
|
+
onclick="toggleCode('M000019-source');return false;">[Source]</a></p>
|
902
|
+
<div class="method-source-code" id="M000019-source">
|
903
|
+
<pre>
|
904
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 96</span>
|
905
|
+
96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">foldl</span>(<span class="ruby-identifier">s</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
906
|
+
97: <span class="ruby-identifier">inject</span>(<span class="ruby-identifier">s</span>){ <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">a</span>,<span class="ruby-identifier">b</span>) }
|
907
|
+
98: <span class="ruby-keyword kw">end</span>
|
908
|
+
</pre>
|
909
|
+
</div>
|
910
|
+
</div>
|
911
|
+
</div>
|
912
|
+
|
913
|
+
<div id="method-M000021" class="method-detail">
|
914
|
+
<a name="M000021"></a>
|
915
|
+
|
916
|
+
<div class="method-heading">
|
917
|
+
<a href="#M000021" class="method-signature">
|
918
|
+
<span class="method-name">foldl1</span><span class="method-args">(&block)</span>
|
919
|
+
</a>
|
920
|
+
</div>
|
921
|
+
|
922
|
+
<div class="method-description">
|
923
|
+
<table>
|
924
|
+
<tr><td valign="top">foldl1 — :</td><td>(a -> a -> a) -> [a] -> a
|
925
|
+
|
926
|
+
</td></tr>
|
927
|
+
</table>
|
928
|
+
<p><a class="source-toggle" href="#"
|
929
|
+
onclick="toggleCode('M000021-source');return false;">[Source]</a></p>
|
930
|
+
<div class="method-source-code" id="M000021-source">
|
931
|
+
<pre>
|
932
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 107</span>
|
933
|
+
107: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">foldl1</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
934
|
+
108: <span class="ruby-identifier">tail</span>.<span class="ruby-identifier">foldl</span>(<span class="ruby-identifier">head</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
935
|
+
109: <span class="ruby-keyword kw">end</span>
|
936
|
+
</pre>
|
937
|
+
</div>
|
938
|
+
</div>
|
939
|
+
</div>
|
940
|
+
|
941
|
+
<div id="method-M000022" class="method-detail">
|
942
|
+
<a name="M000022"></a>
|
943
|
+
|
944
|
+
<div class="method-heading">
|
945
|
+
<a href="#M000022" class="method-signature">
|
946
|
+
<span class="method-name">foldl1_</span><span class="method-args">()</span>
|
947
|
+
</a>
|
948
|
+
</div>
|
949
|
+
|
950
|
+
<div class="method-description">
|
951
|
+
<table>
|
952
|
+
<tr><td valign="top">foldl1’ — :</td><td>(a -> a -> a) -> [a] -> a
|
953
|
+
|
954
|
+
</td></tr>
|
955
|
+
</table>
|
956
|
+
<p><a class="source-toggle" href="#"
|
957
|
+
onclick="toggleCode('M000022-source');return false;">[Source]</a></p>
|
958
|
+
<div class="method-source-code" id="M000022-source">
|
959
|
+
<pre>
|
960
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 112</span>
|
961
|
+
112: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">foldl1_</span>
|
962
|
+
113: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'foldl1_' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
963
|
+
114: <span class="ruby-keyword kw">return</span> []
|
964
|
+
115: <span class="ruby-keyword kw">end</span>
|
965
|
+
</pre>
|
966
|
+
</div>
|
967
|
+
</div>
|
968
|
+
</div>
|
969
|
+
|
970
|
+
<div id="method-M000020" class="method-detail">
|
971
|
+
<a name="M000020"></a>
|
972
|
+
|
973
|
+
<div class="method-heading">
|
974
|
+
<a href="#M000020" class="method-signature">
|
975
|
+
<span class="method-name">foldl_</span><span class="method-args">()</span>
|
976
|
+
</a>
|
977
|
+
</div>
|
978
|
+
|
979
|
+
<div class="method-description">
|
980
|
+
<table>
|
981
|
+
<tr><td valign="top">foldl’ — :</td><td>(a -> b -> a) -> a -> [b] -> a
|
982
|
+
|
983
|
+
</td></tr>
|
984
|
+
</table>
|
985
|
+
<p><a class="source-toggle" href="#"
|
986
|
+
onclick="toggleCode('M000020-source');return false;">[Source]</a></p>
|
987
|
+
<div class="method-source-code" id="M000020-source">
|
988
|
+
<pre>
|
989
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 101</span>
|
990
|
+
101: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">foldl_</span>
|
991
|
+
102: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'foldl_' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
992
|
+
103: <span class="ruby-keyword kw">return</span> []
|
993
|
+
104: <span class="ruby-keyword kw">end</span>
|
994
|
+
</pre>
|
995
|
+
</div>
|
996
|
+
</div>
|
997
|
+
</div>
|
998
|
+
|
999
|
+
<div id="method-M000023" class="method-detail">
|
1000
|
+
<a name="M000023"></a>
|
1001
|
+
|
1002
|
+
<div class="method-heading">
|
1003
|
+
<a href="#M000023" class="method-signature">
|
1004
|
+
<span class="method-name">foldr</span><span class="method-args">(s, &block)</span>
|
1005
|
+
</a>
|
1006
|
+
</div>
|
1007
|
+
|
1008
|
+
<div class="method-description">
|
1009
|
+
<table>
|
1010
|
+
<tr><td valign="top">foldr — :</td><td>(a -> b -> b) -> b -> [a] -> b
|
1011
|
+
|
1012
|
+
</td></tr>
|
1013
|
+
</table>
|
1014
|
+
<p><a class="source-toggle" href="#"
|
1015
|
+
onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
|
1016
|
+
<div class="method-source-code" id="M000023-source">
|
1017
|
+
<pre>
|
1018
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 118</span>
|
1019
|
+
118: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">foldr</span>(<span class="ruby-identifier">s</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
1020
|
+
119: <span class="ruby-identifier">inject</span>(<span class="ruby-identifier">s</span>){ <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">b</span>, <span class="ruby-identifier">a</span>) }
|
1021
|
+
120: <span class="ruby-keyword kw">end</span>
|
1022
|
+
</pre>
|
1023
|
+
</div>
|
1024
|
+
</div>
|
1025
|
+
</div>
|
1026
|
+
|
1027
|
+
<div id="method-M000024" class="method-detail">
|
1028
|
+
<a name="M000024"></a>
|
1029
|
+
|
1030
|
+
<div class="method-heading">
|
1031
|
+
<a href="#M000024" class="method-signature">
|
1032
|
+
<span class="method-name">foldr1</span><span class="method-args">(&block)</span>
|
1033
|
+
</a>
|
1034
|
+
</div>
|
1035
|
+
|
1036
|
+
<div class="method-description">
|
1037
|
+
<table>
|
1038
|
+
<tr><td valign="top">foldr1 — :</td><td>(a -> a -> a) -> [a] -> a
|
1039
|
+
|
1040
|
+
</td></tr>
|
1041
|
+
</table>
|
1042
|
+
<p><a class="source-toggle" href="#"
|
1043
|
+
onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
|
1044
|
+
<div class="method-source-code" id="M000024-source">
|
1045
|
+
<pre>
|
1046
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 123</span>
|
1047
|
+
123: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">foldr1</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
1048
|
+
124: <span class="ruby-identifier">tail</span>.<span class="ruby-identifier">foldr</span>(<span class="ruby-identifier">head</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
1049
|
+
125: <span class="ruby-keyword kw">end</span>
|
1050
|
+
</pre>
|
1051
|
+
</div>
|
1052
|
+
</div>
|
1053
|
+
</div>
|
1054
|
+
|
1055
|
+
<div id="method-M000059" class="method-detail">
|
1056
|
+
<a name="M000059"></a>
|
1057
|
+
|
1058
|
+
<div class="method-heading">
|
1059
|
+
<a href="#M000059" class="method-signature">
|
1060
|
+
<span class="method-name">group</span><span class="method-args">()</span>
|
1061
|
+
</a>
|
1062
|
+
</div>
|
1063
|
+
|
1064
|
+
<div class="method-description">
|
1065
|
+
<table>
|
1066
|
+
<tr><td valign="top">group — :</td><td>Eq a => [a] -> [[a]]
|
1067
|
+
|
1068
|
+
</td></tr>
|
1069
|
+
</table>
|
1070
|
+
<p><a class="source-toggle" href="#"
|
1071
|
+
onclick="toggleCode('M000059-source');return false;">[Source]</a></p>
|
1072
|
+
<div class="method-source-code" id="M000059-source">
|
1073
|
+
<pre>
|
1074
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 321</span>
|
1075
|
+
321: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">group</span>
|
1076
|
+
322: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'group' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1077
|
+
323: <span class="ruby-keyword kw">return</span> []
|
1078
|
+
324: <span class="ruby-keyword kw">end</span>
|
1079
|
+
</pre>
|
1080
|
+
</div>
|
1081
|
+
</div>
|
1082
|
+
</div>
|
1083
|
+
|
1084
|
+
<div id="method-M000013" class="method-detail">
|
1085
|
+
<a name="M000013"></a>
|
1086
|
+
|
1087
|
+
<div class="method-heading">
|
1088
|
+
<a href="#M000013" class="method-signature">
|
1089
|
+
<span class="method-name">head</span><span class="method-args">()</span>
|
1090
|
+
</a>
|
1091
|
+
</div>
|
1092
|
+
|
1093
|
+
<div class="method-description">
|
1094
|
+
<table>
|
1095
|
+
<tr><td valign="top">head — :</td><td>[a] -> a
|
1096
|
+
|
1097
|
+
</td></tr>
|
1098
|
+
</table>
|
1099
|
+
<p><a class="source-toggle" href="#"
|
1100
|
+
onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
|
1101
|
+
<div class="method-source-code" id="M000013-source">
|
1102
|
+
<pre>
|
1103
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 60</span>
|
1104
|
+
60: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">head</span>
|
1105
|
+
61: <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span>]
|
1106
|
+
62: <span class="ruby-keyword kw">end</span>
|
1107
|
+
</pre>
|
1108
|
+
</div>
|
1109
|
+
</div>
|
1110
|
+
</div>
|
1111
|
+
|
1112
|
+
<div id="method-M000015" class="method-detail">
|
1113
|
+
<a name="M000015"></a>
|
1114
|
+
|
1115
|
+
<div class="method-heading">
|
1116
|
+
<a href="#M000015" class="method-signature">
|
1117
|
+
<span class="method-name">init</span><span class="method-args">()</span>
|
1118
|
+
</a>
|
1119
|
+
</div>
|
1120
|
+
|
1121
|
+
<div class="method-description">
|
1122
|
+
<table>
|
1123
|
+
<tr><td valign="top">init — :</td><td>[a] -> [a]
|
1124
|
+
|
1125
|
+
</td></tr>
|
1126
|
+
</table>
|
1127
|
+
<p><a class="source-toggle" href="#"
|
1128
|
+
onclick="toggleCode('M000015-source');return false;">[Source]</a></p>
|
1129
|
+
<div class="method-source-code" id="M000015-source">
|
1130
|
+
<pre>
|
1131
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 70</span>
|
1132
|
+
70: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">init</span>
|
1133
|
+
71: <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>]
|
1134
|
+
72: <span class="ruby-keyword kw">end</span>
|
1135
|
+
</pre>
|
1136
|
+
</div>
|
1137
|
+
</div>
|
1138
|
+
</div>
|
1139
|
+
|
1140
|
+
<div id="method-M000060" class="method-detail">
|
1141
|
+
<a name="M000060"></a>
|
1142
|
+
|
1143
|
+
<div class="method-heading">
|
1144
|
+
<a href="#M000060" class="method-signature">
|
1145
|
+
<span class="method-name">inits</span><span class="method-args">()</span>
|
1146
|
+
</a>
|
1147
|
+
</div>
|
1148
|
+
|
1149
|
+
<div class="method-description">
|
1150
|
+
<table>
|
1151
|
+
<tr><td valign="top">inits — :</td><td>[a] -> [[a]]
|
1152
|
+
|
1153
|
+
</td></tr>
|
1154
|
+
</table>
|
1155
|
+
<p><a class="source-toggle" href="#"
|
1156
|
+
onclick="toggleCode('M000060-source');return false;">[Source]</a></p>
|
1157
|
+
<div class="method-source-code" id="M000060-source">
|
1158
|
+
<pre>
|
1159
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 327</span>
|
1160
|
+
327: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inits</span>
|
1161
|
+
328: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'inits' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1162
|
+
329: <span class="ruby-keyword kw">return</span> []
|
1163
|
+
330: <span class="ruby-keyword kw">end</span>
|
1164
|
+
</pre>
|
1165
|
+
</div>
|
1166
|
+
</div>
|
1167
|
+
</div>
|
1168
|
+
|
1169
|
+
<div id="method-M000098" class="method-detail">
|
1170
|
+
<a name="M000098"></a>
|
1171
|
+
|
1172
|
+
<div class="method-heading">
|
1173
|
+
<a href="#M000098" class="method-signature">
|
1174
|
+
<span class="method-name">insert</span><span class="method-args">(o)</span>
|
1175
|
+
</a>
|
1176
|
+
</div>
|
1177
|
+
|
1178
|
+
<div class="method-description">
|
1179
|
+
<p>
|
1180
|
+
Implemented by Array but semantics is different
|
1181
|
+
</p>
|
1182
|
+
<table>
|
1183
|
+
<tr><td valign="top">insert — :</td><td>(Ord a) => a -> [a] -> [a]
|
1184
|
+
|
1185
|
+
</td></tr>
|
1186
|
+
</table>
|
1187
|
+
<p><a class="source-toggle" href="#"
|
1188
|
+
onclick="toggleCode('M000098-source');return false;">[Source]</a></p>
|
1189
|
+
<div class="method-source-code" id="M000098-source">
|
1190
|
+
<pre>
|
1191
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 537</span>
|
1192
|
+
537: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">insert</span>(<span class="ruby-identifier">o</span>)
|
1193
|
+
538: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'insert' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1194
|
+
539: <span class="ruby-keyword kw">return</span> []
|
1195
|
+
540: <span class="ruby-keyword kw">end</span>
|
1196
|
+
</pre>
|
1197
|
+
</div>
|
1198
|
+
</div>
|
1199
|
+
</div>
|
1200
|
+
|
1201
|
+
<div id="method-M000097" class="method-detail">
|
1202
|
+
<a name="M000097"></a>
|
1203
|
+
|
1204
|
+
<div class="method-heading">
|
1205
|
+
<a href="#M000097" class="method-signature">
|
1206
|
+
<span class="method-name">intersect</span><span class="method-args">()</span>
|
1207
|
+
</a>
|
1208
|
+
</div>
|
1209
|
+
|
1210
|
+
<div class="method-description">
|
1211
|
+
<table>
|
1212
|
+
<tr><td valign="top">intersect — :</td><td>(Eq a) => [a] -> [a] -> [a]
|
1213
|
+
|
1214
|
+
</td></tr>
|
1215
|
+
</table>
|
1216
|
+
<p><a class="source-toggle" href="#"
|
1217
|
+
onclick="toggleCode('M000097-source');return false;">[Source]</a></p>
|
1218
|
+
<div class="method-source-code" id="M000097-source">
|
1219
|
+
<pre>
|
1220
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 528</span>
|
1221
|
+
528: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">intersect</span>
|
1222
|
+
529: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'intersect' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1223
|
+
530: <span class="ruby-keyword kw">return</span> []
|
1224
|
+
531: <span class="ruby-keyword kw">end</span>
|
1225
|
+
</pre>
|
1226
|
+
</div>
|
1227
|
+
</div>
|
1228
|
+
</div>
|
1229
|
+
|
1230
|
+
<div id="method-M000017" class="method-detail">
|
1231
|
+
<a name="M000017"></a>
|
1232
|
+
|
1233
|
+
<div class="method-heading">
|
1234
|
+
<a href="#M000017" class="method-signature">
|
1235
|
+
<span class="method-name">intersperse</span><span class="method-args">()</span>
|
1236
|
+
</a>
|
1237
|
+
</div>
|
1238
|
+
|
1239
|
+
<div class="method-description">
|
1240
|
+
<table>
|
1241
|
+
<tr><td valign="top">intersperse — :</td><td>a -> [a] -> [a]
|
1242
|
+
|
1243
|
+
</td></tr>
|
1244
|
+
</table>
|
1245
|
+
<p><a class="source-toggle" href="#"
|
1246
|
+
onclick="toggleCode('M000017-source');return false;">[Source]</a></p>
|
1247
|
+
<div class="method-source-code" id="M000017-source">
|
1248
|
+
<pre>
|
1249
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 80</span>
|
1250
|
+
80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">intersperse</span>
|
1251
|
+
81: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'intersperse' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1252
|
+
82: <span class="ruby-keyword kw">return</span> []
|
1253
|
+
83: <span class="ruby-keyword kw">end</span>
|
1254
|
+
</pre>
|
1255
|
+
</div>
|
1256
|
+
</div>
|
1257
|
+
</div>
|
1258
|
+
|
1259
|
+
<div id="method-M000063" class="method-detail">
|
1260
|
+
<a name="M000063"></a>
|
1261
|
+
|
1262
|
+
<div class="method-heading">
|
1263
|
+
<span class="method-name">isPrefixOf</span><span class="method-args">()</span>
|
1264
|
+
</div>
|
1265
|
+
|
1266
|
+
<div class="method-description">
|
1267
|
+
<p>
|
1268
|
+
Alias for <a href="List.html#M000062">is_prefix_of</a>
|
1269
|
+
</p>
|
1270
|
+
</div>
|
1271
|
+
</div>
|
1272
|
+
|
1273
|
+
<div id="method-M000065" class="method-detail">
|
1274
|
+
<a name="M000065"></a>
|
1275
|
+
|
1276
|
+
<div class="method-heading">
|
1277
|
+
<span class="method-name">isSuffixOf</span><span class="method-args">()</span>
|
1278
|
+
</div>
|
1279
|
+
|
1280
|
+
<div class="method-description">
|
1281
|
+
<p>
|
1282
|
+
Alias for <a href="List.html#M000064">is_suffix_of</a>
|
1283
|
+
</p>
|
1284
|
+
</div>
|
1285
|
+
</div>
|
1286
|
+
|
1287
|
+
<div id="method-M000062" class="method-detail">
|
1288
|
+
<a name="M000062"></a>
|
1289
|
+
|
1290
|
+
<div class="method-heading">
|
1291
|
+
<a href="#M000062" class="method-signature">
|
1292
|
+
<span class="method-name">is_prefix_of</span><span class="method-args">()</span>
|
1293
|
+
</a>
|
1294
|
+
</div>
|
1295
|
+
|
1296
|
+
<div class="method-description">
|
1297
|
+
<table>
|
1298
|
+
<tr><td valign="top">isPrefixOf — :</td><td>(Eq a) => [a] -> [a] -> Bool
|
1299
|
+
|
1300
|
+
</td></tr>
|
1301
|
+
</table>
|
1302
|
+
<p><a class="source-toggle" href="#"
|
1303
|
+
onclick="toggleCode('M000062-source');return false;">[Source]</a></p>
|
1304
|
+
<div class="method-source-code" id="M000062-source">
|
1305
|
+
<pre>
|
1306
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 341</span>
|
1307
|
+
341: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_prefix_of</span>
|
1308
|
+
342: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'is_prefix_of' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1309
|
+
343: <span class="ruby-keyword kw">return</span> []
|
1310
|
+
344: <span class="ruby-keyword kw">end</span>
|
1311
|
+
</pre>
|
1312
|
+
</div>
|
1313
|
+
</div>
|
1314
|
+
</div>
|
1315
|
+
|
1316
|
+
<div id="method-M000064" class="method-detail">
|
1317
|
+
<a name="M000064"></a>
|
1318
|
+
|
1319
|
+
<div class="method-heading">
|
1320
|
+
<a href="#M000064" class="method-signature">
|
1321
|
+
<span class="method-name">is_suffix_of</span><span class="method-args">()</span>
|
1322
|
+
</a>
|
1323
|
+
</div>
|
1324
|
+
|
1325
|
+
<div class="method-description">
|
1326
|
+
<table>
|
1327
|
+
<tr><td valign="top">isSuffixOf — :</td><td>(Eq a) => [a] -> [a] -> Bool
|
1328
|
+
|
1329
|
+
</td></tr>
|
1330
|
+
</table>
|
1331
|
+
<p><a class="source-toggle" href="#"
|
1332
|
+
onclick="toggleCode('M000064-source');return false;">[Source]</a></p>
|
1333
|
+
<div class="method-source-code" id="M000064-source">
|
1334
|
+
<pre>
|
1335
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 348</span>
|
1336
|
+
348: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_suffix_of</span>
|
1337
|
+
349: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'is_suffix_of' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1338
|
+
350: <span class="ruby-keyword kw">return</span> []
|
1339
|
+
351: <span class="ruby-keyword kw">end</span>
|
1340
|
+
</pre>
|
1341
|
+
</div>
|
1342
|
+
</div>
|
1343
|
+
</div>
|
1344
|
+
|
1345
|
+
<div id="method-M000044" class="method-detail">
|
1346
|
+
<a name="M000044"></a>
|
1347
|
+
|
1348
|
+
<div class="method-heading">
|
1349
|
+
<a href="#M000044" class="method-signature">
|
1350
|
+
<span class="method-name">iterate</span><span class="method-args">()</span>
|
1351
|
+
</a>
|
1352
|
+
</div>
|
1353
|
+
|
1354
|
+
<div class="method-description">
|
1355
|
+
<table>
|
1356
|
+
<tr><td valign="top">iterate — :</td><td>(a -> a) -> a -> [a]
|
1357
|
+
|
1358
|
+
</td></tr>
|
1359
|
+
</table>
|
1360
|
+
<p><a class="source-toggle" href="#"
|
1361
|
+
onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
|
1362
|
+
<div class="method-source-code" id="M000044-source">
|
1363
|
+
<pre>
|
1364
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 234</span>
|
1365
|
+
234: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">iterate</span>
|
1366
|
+
235: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'iterate' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1367
|
+
236: <span class="ruby-keyword kw">return</span> []
|
1368
|
+
237: <span class="ruby-keyword kw">end</span>
|
1369
|
+
</pre>
|
1370
|
+
</div>
|
1371
|
+
</div>
|
1372
|
+
</div>
|
1373
|
+
|
1374
|
+
<div id="method-M000090" class="method-detail">
|
1375
|
+
<a name="M000090"></a>
|
1376
|
+
|
1377
|
+
<div class="method-heading">
|
1378
|
+
<a href="#M000090" class="method-signature">
|
1379
|
+
<span class="method-name">lines</span><span class="method-args">()</span>
|
1380
|
+
</a>
|
1381
|
+
</div>
|
1382
|
+
|
1383
|
+
<div class="method-description">
|
1384
|
+
<table>
|
1385
|
+
<tr><td valign="top">lines — :</td><td>String -> [String]
|
1386
|
+
|
1387
|
+
</td></tr>
|
1388
|
+
</table>
|
1389
|
+
<p><a class="source-toggle" href="#"
|
1390
|
+
onclick="toggleCode('M000090-source');return false;">[Source]</a></p>
|
1391
|
+
<div class="method-source-code" id="M000090-source">
|
1392
|
+
<pre>
|
1393
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 482</span>
|
1394
|
+
482: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lines</span>
|
1395
|
+
483: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'lines' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1396
|
+
484: <span class="ruby-keyword kw">return</span> []
|
1397
|
+
485: <span class="ruby-keyword kw">end</span>
|
1398
|
+
</pre>
|
1399
|
+
</div>
|
1400
|
+
</div>
|
1401
|
+
</div>
|
1402
|
+
|
1403
|
+
<div id="method-M000069" class="method-detail">
|
1404
|
+
<a name="M000069"></a>
|
1405
|
+
|
1406
|
+
<div class="method-heading">
|
1407
|
+
<a href="#M000069" class="method-signature">
|
1408
|
+
<span class="method-name">lookup</span><span class="method-args">()</span>
|
1409
|
+
</a>
|
1410
|
+
</div>
|
1411
|
+
|
1412
|
+
<div class="method-description">
|
1413
|
+
<table>
|
1414
|
+
<tr><td valign="top">lookup — :</td><td>(Eq a) => a -> [(a,b)] -> Maybe b
|
1415
|
+
|
1416
|
+
</td></tr>
|
1417
|
+
</table>
|
1418
|
+
<p><a class="source-toggle" href="#"
|
1419
|
+
onclick="toggleCode('M000069-source');return false;">[Source]</a></p>
|
1420
|
+
<div class="method-source-code" id="M000069-source">
|
1421
|
+
<pre>
|
1422
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 372</span>
|
1423
|
+
372: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">lookup</span>
|
1424
|
+
373: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'lookup' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1425
|
+
374: <span class="ruby-keyword kw">return</span> []
|
1426
|
+
375: <span class="ruby-keyword kw">end</span>
|
1427
|
+
</pre>
|
1428
|
+
</div>
|
1429
|
+
</div>
|
1430
|
+
</div>
|
1431
|
+
|
1432
|
+
<div id="method-M000041" class="method-detail">
|
1433
|
+
<a name="M000041"></a>
|
1434
|
+
|
1435
|
+
<div class="method-heading">
|
1436
|
+
<span class="method-name">mapAccumL</span><span class="method-args">()</span>
|
1437
|
+
</div>
|
1438
|
+
|
1439
|
+
<div class="method-description">
|
1440
|
+
<p>
|
1441
|
+
Alias for <a href="List.html#M000040">map_accum_l</a>
|
1442
|
+
</p>
|
1443
|
+
</div>
|
1444
|
+
</div>
|
1445
|
+
|
1446
|
+
<div id="method-M000043" class="method-detail">
|
1447
|
+
<a name="M000043"></a>
|
1448
|
+
|
1449
|
+
<div class="method-heading">
|
1450
|
+
<span class="method-name">mapAccumR</span><span class="method-args">()</span>
|
1451
|
+
</div>
|
1452
|
+
|
1453
|
+
<div class="method-description">
|
1454
|
+
<p>
|
1455
|
+
Alias for <a href="List.html#M000042">map_accum_r</a>
|
1456
|
+
</p>
|
1457
|
+
</div>
|
1458
|
+
</div>
|
1459
|
+
|
1460
|
+
<div id="method-M000040" class="method-detail">
|
1461
|
+
<a name="M000040"></a>
|
1462
|
+
|
1463
|
+
<div class="method-heading">
|
1464
|
+
<a href="#M000040" class="method-signature">
|
1465
|
+
<span class="method-name">map_accum_l</span><span class="method-args">()</span>
|
1466
|
+
</a>
|
1467
|
+
</div>
|
1468
|
+
|
1469
|
+
<div class="method-description">
|
1470
|
+
<table>
|
1471
|
+
<tr><td valign="top">mapAccumL — :</td><td>(a -> b -> (a,c)) -> a -> [b] -> (a,[c])
|
1472
|
+
|
1473
|
+
</td></tr>
|
1474
|
+
</table>
|
1475
|
+
<p><a class="source-toggle" href="#"
|
1476
|
+
onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
|
1477
|
+
<div class="method-source-code" id="M000040-source">
|
1478
|
+
<pre>
|
1479
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 217</span>
|
1480
|
+
217: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">map_accum_l</span>
|
1481
|
+
218: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'map_accum_l' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1482
|
+
219: <span class="ruby-keyword kw">return</span> []
|
1483
|
+
220: <span class="ruby-keyword kw">end</span>
|
1484
|
+
</pre>
|
1485
|
+
</div>
|
1486
|
+
</div>
|
1487
|
+
</div>
|
1488
|
+
|
1489
|
+
<div id="method-M000042" class="method-detail">
|
1490
|
+
<a name="M000042"></a>
|
1491
|
+
|
1492
|
+
<div class="method-heading">
|
1493
|
+
<a href="#M000042" class="method-signature">
|
1494
|
+
<span class="method-name">map_accum_r</span><span class="method-args">()</span>
|
1495
|
+
</a>
|
1496
|
+
</div>
|
1497
|
+
|
1498
|
+
<div class="method-description">
|
1499
|
+
<table>
|
1500
|
+
<tr><td valign="top">mapAccumR — :</td><td>(a -> b -> (a,c)) -> a -> [b] -> (a,[c])
|
1501
|
+
|
1502
|
+
</td></tr>
|
1503
|
+
</table>
|
1504
|
+
<p><a class="source-toggle" href="#"
|
1505
|
+
onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
|
1506
|
+
<div class="method-source-code" id="M000042-source">
|
1507
|
+
<pre>
|
1508
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 224</span>
|
1509
|
+
224: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">map_accum_r</span>
|
1510
|
+
225: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'map_accum_r' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1511
|
+
226: <span class="ruby-keyword kw">return</span> []
|
1512
|
+
227: <span class="ruby-keyword kw">end</span>
|
1513
|
+
</pre>
|
1514
|
+
</div>
|
1515
|
+
</div>
|
1516
|
+
</div>
|
1517
|
+
|
1518
|
+
<div id="method-M000034" class="method-detail">
|
1519
|
+
<a name="M000034"></a>
|
1520
|
+
|
1521
|
+
<div class="method-heading">
|
1522
|
+
<a href="#M000034" class="method-signature">
|
1523
|
+
<span class="method-name">maximum</span><span class="method-args">()</span>
|
1524
|
+
</a>
|
1525
|
+
</div>
|
1526
|
+
|
1527
|
+
<div class="method-description">
|
1528
|
+
<table>
|
1529
|
+
<tr><td valign="top">maximum — :</td><td>(Ord a) => [a] -> a
|
1530
|
+
|
1531
|
+
</td></tr>
|
1532
|
+
</table>
|
1533
|
+
<p><a class="source-toggle" href="#"
|
1534
|
+
onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
|
1535
|
+
<div class="method-source-code" id="M000034-source">
|
1536
|
+
<pre>
|
1537
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 177</span>
|
1538
|
+
177: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">maximum</span>
|
1539
|
+
178: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'maximum' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1540
|
+
179: <span class="ruby-keyword kw">return</span> []
|
1541
|
+
180: <span class="ruby-keyword kw">end</span>
|
1542
|
+
</pre>
|
1543
|
+
</div>
|
1544
|
+
</div>
|
1545
|
+
</div>
|
1546
|
+
|
1547
|
+
<div id="method-M000035" class="method-detail">
|
1548
|
+
<a name="M000035"></a>
|
1549
|
+
|
1550
|
+
<div class="method-heading">
|
1551
|
+
<a href="#M000035" class="method-signature">
|
1552
|
+
<span class="method-name">minimum</span><span class="method-args">()</span>
|
1553
|
+
</a>
|
1554
|
+
</div>
|
1555
|
+
|
1556
|
+
<div class="method-description">
|
1557
|
+
<table>
|
1558
|
+
<tr><td valign="top">minimum — :</td><td>(Ord a) => [a] -> a
|
1559
|
+
|
1560
|
+
</td></tr>
|
1561
|
+
</table>
|
1562
|
+
<p><a class="source-toggle" href="#"
|
1563
|
+
onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
|
1564
|
+
<div class="method-source-code" id="M000035-source">
|
1565
|
+
<pre>
|
1566
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 183</span>
|
1567
|
+
183: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">minimum</span>
|
1568
|
+
184: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'minimum' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1569
|
+
185: <span class="ruby-keyword kw">return</span> []
|
1570
|
+
186: <span class="ruby-keyword kw">end</span>
|
1571
|
+
</pre>
|
1572
|
+
</div>
|
1573
|
+
</div>
|
1574
|
+
</div>
|
1575
|
+
|
1576
|
+
<div id="method-M000068" class="method-detail">
|
1577
|
+
<a name="M000068"></a>
|
1578
|
+
|
1579
|
+
<div class="method-heading">
|
1580
|
+
<span class="method-name">notElem</span><span class="method-args">()</span>
|
1581
|
+
</div>
|
1582
|
+
|
1583
|
+
<div class="method-description">
|
1584
|
+
<p>
|
1585
|
+
Alias for <a href="List.html#M000067">not_elem</a>
|
1586
|
+
</p>
|
1587
|
+
</div>
|
1588
|
+
</div>
|
1589
|
+
|
1590
|
+
<div id="method-M000067" class="method-detail">
|
1591
|
+
<a name="M000067"></a>
|
1592
|
+
|
1593
|
+
<div class="method-heading">
|
1594
|
+
<a href="#M000067" class="method-signature">
|
1595
|
+
<span class="method-name">not_elem</span><span class="method-args">()</span>
|
1596
|
+
</a>
|
1597
|
+
</div>
|
1598
|
+
|
1599
|
+
<div class="method-description">
|
1600
|
+
<table>
|
1601
|
+
<tr><td valign="top">notElem — :</td><td>a -> [a] -> Bool
|
1602
|
+
|
1603
|
+
</td></tr>
|
1604
|
+
</table>
|
1605
|
+
<p><a class="source-toggle" href="#"
|
1606
|
+
onclick="toggleCode('M000067-source');return false;">[Source]</a></p>
|
1607
|
+
<div class="method-source-code" id="M000067-source">
|
1608
|
+
<pre>
|
1609
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 365</span>
|
1610
|
+
365: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">not_elem</span>
|
1611
|
+
366: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'not_elem' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1612
|
+
367: <span class="ruby-keyword kw">return</span> []
|
1613
|
+
368: <span class="ruby-keyword kw">end</span>
|
1614
|
+
</pre>
|
1615
|
+
</div>
|
1616
|
+
</div>
|
1617
|
+
</div>
|
1618
|
+
|
1619
|
+
<div id="method-M000094" class="method-detail">
|
1620
|
+
<a name="M000094"></a>
|
1621
|
+
|
1622
|
+
<div class="method-heading">
|
1623
|
+
<a href="#M000094" class="method-signature">
|
1624
|
+
<span class="method-name">nub</span><span class="method-args">()</span>
|
1625
|
+
</a>
|
1626
|
+
</div>
|
1627
|
+
|
1628
|
+
<div class="method-description">
|
1629
|
+
<table>
|
1630
|
+
<tr><td valign="top">nub — :</td><td>(Eq a) => [a] -> [a]
|
1631
|
+
|
1632
|
+
</td></tr>
|
1633
|
+
</table>
|
1634
|
+
<p><a class="source-toggle" href="#"
|
1635
|
+
onclick="toggleCode('M000094-source');return false;">[Source]</a></p>
|
1636
|
+
<div class="method-source-code" id="M000094-source">
|
1637
|
+
<pre>
|
1638
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 509</span>
|
1639
|
+
509: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">nub</span>
|
1640
|
+
510: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'nub' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1641
|
+
511: <span class="ruby-keyword kw">return</span> []
|
1642
|
+
512: <span class="ruby-keyword kw">end</span>
|
1643
|
+
</pre>
|
1644
|
+
</div>
|
1645
|
+
</div>
|
1646
|
+
</div>
|
1647
|
+
|
1648
|
+
<div id="method-M000016" class="method-detail">
|
1649
|
+
<a name="M000016"></a>
|
1650
|
+
|
1651
|
+
<div class="method-heading">
|
1652
|
+
<a href="#M000016" class="method-signature">
|
1653
|
+
<span class="method-name">null</span><span class="method-args">()</span>
|
1654
|
+
</a>
|
1655
|
+
</div>
|
1656
|
+
|
1657
|
+
<div class="method-description">
|
1658
|
+
<table>
|
1659
|
+
<tr><td valign="top">null — :</td><td>[a] -> Bool
|
1660
|
+
|
1661
|
+
</td></tr>
|
1662
|
+
</table>
|
1663
|
+
<p><a class="source-toggle" href="#"
|
1664
|
+
onclick="toggleCode('M000016-source');return false;">[Source]</a></p>
|
1665
|
+
<div class="method-source-code" id="M000016-source">
|
1666
|
+
<pre>
|
1667
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 75</span>
|
1668
|
+
75: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">null</span>
|
1669
|
+
76: <span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
1670
|
+
77: <span class="ruby-keyword kw">end</span>
|
1671
|
+
</pre>
|
1672
|
+
</div>
|
1673
|
+
</div>
|
1674
|
+
</div>
|
1675
|
+
|
1676
|
+
<div id="method-M000029" class="method-detail">
|
1677
|
+
<a name="M000029"></a>
|
1678
|
+
|
1679
|
+
<div class="method-heading">
|
1680
|
+
<a href="#M000029" class="method-signature">
|
1681
|
+
<span class="method-name">or</span><span class="method-args">()</span>
|
1682
|
+
</a>
|
1683
|
+
</div>
|
1684
|
+
|
1685
|
+
<div class="method-description">
|
1686
|
+
<table>
|
1687
|
+
<tr><td valign="top">or — :</td><td>[Bool] -> Bool
|
1688
|
+
|
1689
|
+
</td></tr>
|
1690
|
+
</table>
|
1691
|
+
<p><a class="source-toggle" href="#"
|
1692
|
+
onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
|
1693
|
+
<div class="method-source-code" id="M000029-source">
|
1694
|
+
<pre>
|
1695
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 148</span>
|
1696
|
+
148: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">or</span>
|
1697
|
+
149: <span class="ruby-identifier">foldr</span>(<span class="ruby-keyword kw">false</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">x</span>,<span class="ruby-identifier">y</span><span class="ruby-operator">|</span> (<span class="ruby-identifier">x</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">y</span>)}
|
1698
|
+
150: <span class="ruby-keyword kw">end</span>
|
1699
|
+
</pre>
|
1700
|
+
</div>
|
1701
|
+
</div>
|
1702
|
+
</div>
|
1703
|
+
|
1704
|
+
<div id="method-M000033" class="method-detail">
|
1705
|
+
<a name="M000033"></a>
|
1706
|
+
|
1707
|
+
<div class="method-heading">
|
1708
|
+
<a href="#M000033" class="method-signature">
|
1709
|
+
<span class="method-name">product</span><span class="method-args">()</span>
|
1710
|
+
</a>
|
1711
|
+
</div>
|
1712
|
+
|
1713
|
+
<div class="method-description">
|
1714
|
+
<table>
|
1715
|
+
<tr><td valign="top">product — :</td><td>(Num a) => [a] -> a
|
1716
|
+
|
1717
|
+
</td></tr>
|
1718
|
+
</table>
|
1719
|
+
<p><a class="source-toggle" href="#"
|
1720
|
+
onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
|
1721
|
+
<div class="method-source-code" id="M000033-source">
|
1722
|
+
<pre>
|
1723
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 171</span>
|
1724
|
+
171: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">product</span>
|
1725
|
+
172: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'product' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1726
|
+
173: <span class="ruby-keyword kw">return</span> []
|
1727
|
+
174: <span class="ruby-keyword kw">end</span>
|
1728
|
+
</pre>
|
1729
|
+
</div>
|
1730
|
+
</div>
|
1731
|
+
</div>
|
1732
|
+
|
1733
|
+
<div id="method-M000045" class="method-detail">
|
1734
|
+
<a name="M000045"></a>
|
1735
|
+
|
1736
|
+
<div class="method-heading">
|
1737
|
+
<a href="#M000045" class="method-signature">
|
1738
|
+
<span class="method-name">repeat</span><span class="method-args">()</span>
|
1739
|
+
</a>
|
1740
|
+
</div>
|
1741
|
+
|
1742
|
+
<div class="method-description">
|
1743
|
+
<table>
|
1744
|
+
<tr><td valign="top">repeat — :</td><td>a -> [a]
|
1745
|
+
|
1746
|
+
</td></tr>
|
1747
|
+
</table>
|
1748
|
+
<p><a class="source-toggle" href="#"
|
1749
|
+
onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
|
1750
|
+
<div class="method-source-code" id="M000045-source">
|
1751
|
+
<pre>
|
1752
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 240</span>
|
1753
|
+
240: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">repeat</span>
|
1754
|
+
241: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'repeat' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1755
|
+
242: <span class="ruby-keyword kw">return</span> []
|
1756
|
+
243: <span class="ruby-keyword kw">end</span>
|
1757
|
+
</pre>
|
1758
|
+
</div>
|
1759
|
+
</div>
|
1760
|
+
</div>
|
1761
|
+
|
1762
|
+
<div id="method-M000046" class="method-detail">
|
1763
|
+
<a name="M000046"></a>
|
1764
|
+
|
1765
|
+
<div class="method-heading">
|
1766
|
+
<a href="#M000046" class="method-signature">
|
1767
|
+
<span class="method-name">replicate</span><span class="method-args">()</span>
|
1768
|
+
</a>
|
1769
|
+
</div>
|
1770
|
+
|
1771
|
+
<div class="method-description">
|
1772
|
+
<table>
|
1773
|
+
<tr><td valign="top">replicate — :</td><td>Int -> a -> [a]
|
1774
|
+
|
1775
|
+
</td></tr>
|
1776
|
+
</table>
|
1777
|
+
<p><a class="source-toggle" href="#"
|
1778
|
+
onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
|
1779
|
+
<div class="method-source-code" id="M000046-source">
|
1780
|
+
<pre>
|
1781
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 246</span>
|
1782
|
+
246: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">replicate</span>
|
1783
|
+
247: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'replicate' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1784
|
+
248: <span class="ruby-keyword kw">return</span> []
|
1785
|
+
249: <span class="ruby-keyword kw">end</span>
|
1786
|
+
</pre>
|
1787
|
+
</div>
|
1788
|
+
</div>
|
1789
|
+
</div>
|
1790
|
+
|
1791
|
+
<div id="method-M000036" class="method-detail">
|
1792
|
+
<a name="M000036"></a>
|
1793
|
+
|
1794
|
+
<div class="method-heading">
|
1795
|
+
<a href="#M000036" class="method-signature">
|
1796
|
+
<span class="method-name">scanl</span><span class="method-args">(s, &block)</span>
|
1797
|
+
</a>
|
1798
|
+
</div>
|
1799
|
+
|
1800
|
+
<div class="method-description">
|
1801
|
+
<table>
|
1802
|
+
<tr><td valign="top">scanl — :</td><td>(a -> b -> a) -> a -> [b] -> [a]
|
1803
|
+
|
1804
|
+
</td></tr>
|
1805
|
+
</table>
|
1806
|
+
<p><a class="source-toggle" href="#"
|
1807
|
+
onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
|
1808
|
+
<div class="method-source-code" id="M000036-source">
|
1809
|
+
<pre>
|
1810
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 194</span>
|
1811
|
+
194: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scanl</span>(<span class="ruby-identifier">s</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
1812
|
+
195: <span class="ruby-identifier">inject</span>([<span class="ruby-identifier">s</span>]){ <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">a</span>.<span class="ruby-identifier">last</span>,<span class="ruby-identifier">b</span>) }
|
1813
|
+
196: <span class="ruby-keyword kw">end</span>
|
1814
|
+
</pre>
|
1815
|
+
</div>
|
1816
|
+
</div>
|
1817
|
+
</div>
|
1818
|
+
|
1819
|
+
<div id="method-M000037" class="method-detail">
|
1820
|
+
<a name="M000037"></a>
|
1821
|
+
|
1822
|
+
<div class="method-heading">
|
1823
|
+
<a href="#M000037" class="method-signature">
|
1824
|
+
<span class="method-name">scanl1</span><span class="method-args">(&block)</span>
|
1825
|
+
</a>
|
1826
|
+
</div>
|
1827
|
+
|
1828
|
+
<div class="method-description">
|
1829
|
+
<table>
|
1830
|
+
<tr><td valign="top">scanl1 — :</td><td>(a -> a -> a) -> [a] -> [a]
|
1831
|
+
|
1832
|
+
</td></tr>
|
1833
|
+
</table>
|
1834
|
+
<p><a class="source-toggle" href="#"
|
1835
|
+
onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
|
1836
|
+
<div class="method-source-code" id="M000037-source">
|
1837
|
+
<pre>
|
1838
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 199</span>
|
1839
|
+
199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scanl1</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
1840
|
+
200: <span class="ruby-identifier">tail</span>.<span class="ruby-identifier">scanl</span>(<span class="ruby-identifier">head</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
1841
|
+
201: <span class="ruby-keyword kw">end</span>
|
1842
|
+
</pre>
|
1843
|
+
</div>
|
1844
|
+
</div>
|
1845
|
+
</div>
|
1846
|
+
|
1847
|
+
<div id="method-M000038" class="method-detail">
|
1848
|
+
<a name="M000038"></a>
|
1849
|
+
|
1850
|
+
<div class="method-heading">
|
1851
|
+
<a href="#M000038" class="method-signature">
|
1852
|
+
<span class="method-name">scanr</span><span class="method-args">(s, &block)</span>
|
1853
|
+
</a>
|
1854
|
+
</div>
|
1855
|
+
|
1856
|
+
<div class="method-description">
|
1857
|
+
<table>
|
1858
|
+
<tr><td valign="top">scanr — :</td><td>(a -> b -> b) -> b -> [a] -> [b]
|
1859
|
+
|
1860
|
+
</td></tr>
|
1861
|
+
</table>
|
1862
|
+
<p><a class="source-toggle" href="#"
|
1863
|
+
onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
|
1864
|
+
<div class="method-source-code" id="M000038-source">
|
1865
|
+
<pre>
|
1866
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 204</span>
|
1867
|
+
204: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scanr</span>(<span class="ruby-identifier">s</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
1868
|
+
205: <span class="ruby-identifier">inject</span>([<span class="ruby-identifier">s</span>]){ <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>,<span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">a</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">b</span>, <span class="ruby-identifier">a</span>.<span class="ruby-identifier">last</span>) }
|
1869
|
+
206: <span class="ruby-keyword kw">end</span>
|
1870
|
+
</pre>
|
1871
|
+
</div>
|
1872
|
+
</div>
|
1873
|
+
</div>
|
1874
|
+
|
1875
|
+
<div id="method-M000039" class="method-detail">
|
1876
|
+
<a name="M000039"></a>
|
1877
|
+
|
1878
|
+
<div class="method-heading">
|
1879
|
+
<a href="#M000039" class="method-signature">
|
1880
|
+
<span class="method-name">scanr1</span><span class="method-args">(&block)</span>
|
1881
|
+
</a>
|
1882
|
+
</div>
|
1883
|
+
|
1884
|
+
<div class="method-description">
|
1885
|
+
<table>
|
1886
|
+
<tr><td valign="top">scanr1 — :</td><td>(a -> a -> a) -> [a] -> [a]
|
1887
|
+
|
1888
|
+
</td></tr>
|
1889
|
+
</table>
|
1890
|
+
<p><a class="source-toggle" href="#"
|
1891
|
+
onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
|
1892
|
+
<div class="method-source-code" id="M000039-source">
|
1893
|
+
<pre>
|
1894
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 209</span>
|
1895
|
+
209: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scanr1</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
1896
|
+
210: <span class="ruby-identifier">tail</span>.<span class="ruby-identifier">scanr</span>(<span class="ruby-identifier">head</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
1897
|
+
211: <span class="ruby-keyword kw">end</span>
|
1898
|
+
</pre>
|
1899
|
+
</div>
|
1900
|
+
</div>
|
1901
|
+
</div>
|
1902
|
+
|
1903
|
+
<div id="method-M000057" class="method-detail">
|
1904
|
+
<a name="M000057"></a>
|
1905
|
+
|
1906
|
+
<div class="method-heading">
|
1907
|
+
<a href="#M000057" class="method-signature">
|
1908
|
+
<span class="method-name">span</span><span class="method-args">(&block)</span>
|
1909
|
+
</a>
|
1910
|
+
</div>
|
1911
|
+
|
1912
|
+
<div class="method-description">
|
1913
|
+
<table>
|
1914
|
+
<tr><td valign="top">span — :</td><td>(a -> Bool) -> [a] -> ([a], [a])
|
1915
|
+
|
1916
|
+
</td></tr>
|
1917
|
+
</table>
|
1918
|
+
<p><a class="source-toggle" href="#"
|
1919
|
+
onclick="toggleCode('M000057-source');return false;">[Source]</a></p>
|
1920
|
+
<div class="method-source-code" id="M000057-source">
|
1921
|
+
<pre>
|
1922
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 310</span>
|
1923
|
+
310: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">span</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
1924
|
+
311: [<span class="ruby-identifier">take_while</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>), <span class="ruby-identifier">drop_while</span>(<span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)]
|
1925
|
+
312: <span class="ruby-keyword kw">end</span>
|
1926
|
+
</pre>
|
1927
|
+
</div>
|
1928
|
+
</div>
|
1929
|
+
</div>
|
1930
|
+
|
1931
|
+
<div id="method-M000052" class="method-detail">
|
1932
|
+
<a name="M000052"></a>
|
1933
|
+
|
1934
|
+
<div class="method-heading">
|
1935
|
+
<span class="method-name">splitAt</span><span class="method-args">(n)</span>
|
1936
|
+
</div>
|
1937
|
+
|
1938
|
+
<div class="method-description">
|
1939
|
+
<p>
|
1940
|
+
Alias for <a href="List.html#M000051">split_at</a>
|
1941
|
+
</p>
|
1942
|
+
</div>
|
1943
|
+
</div>
|
1944
|
+
|
1945
|
+
<div id="method-M000051" class="method-detail">
|
1946
|
+
<a name="M000051"></a>
|
1947
|
+
|
1948
|
+
<div class="method-heading">
|
1949
|
+
<a href="#M000051" class="method-signature">
|
1950
|
+
<span class="method-name">split_at</span><span class="method-args">(n)</span>
|
1951
|
+
</a>
|
1952
|
+
</div>
|
1953
|
+
|
1954
|
+
<div class="method-description">
|
1955
|
+
<table>
|
1956
|
+
<tr><td valign="top">splitAt — :</td><td>Int -> [a] -> ([a], [a])
|
1957
|
+
|
1958
|
+
</td></tr>
|
1959
|
+
</table>
|
1960
|
+
<p><a class="source-toggle" href="#"
|
1961
|
+
onclick="toggleCode('M000051-source');return false;">[Source]</a></p>
|
1962
|
+
<div class="method-source-code" id="M000051-source">
|
1963
|
+
<pre>
|
1964
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 282</span>
|
1965
|
+
282: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">split_at</span>(<span class="ruby-identifier">n</span>)
|
1966
|
+
283: [<span class="ruby-identifier">take</span>(<span class="ruby-identifier">n</span>), <span class="ruby-identifier">drop</span>(<span class="ruby-identifier">n</span>)]
|
1967
|
+
284: <span class="ruby-keyword kw">end</span>
|
1968
|
+
</pre>
|
1969
|
+
</div>
|
1970
|
+
</div>
|
1971
|
+
</div>
|
1972
|
+
|
1973
|
+
<div id="method-M000032" class="method-detail">
|
1974
|
+
<a name="M000032"></a>
|
1975
|
+
|
1976
|
+
<div class="method-heading">
|
1977
|
+
<a href="#M000032" class="method-signature">
|
1978
|
+
<span class="method-name">sum</span><span class="method-args">()</span>
|
1979
|
+
</a>
|
1980
|
+
</div>
|
1981
|
+
|
1982
|
+
<div class="method-description">
|
1983
|
+
<table>
|
1984
|
+
<tr><td valign="top">sum — :</td><td>(Num a) => [a] -> a
|
1985
|
+
|
1986
|
+
</td></tr>
|
1987
|
+
</table>
|
1988
|
+
<p><a class="source-toggle" href="#"
|
1989
|
+
onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
|
1990
|
+
<div class="method-source-code" id="M000032-source">
|
1991
|
+
<pre>
|
1992
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 165</span>
|
1993
|
+
165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sum</span>
|
1994
|
+
166: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'sum' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
1995
|
+
167: <span class="ruby-keyword kw">return</span> []
|
1996
|
+
168: <span class="ruby-keyword kw">end</span>
|
1997
|
+
</pre>
|
1998
|
+
</div>
|
1999
|
+
</div>
|
2000
|
+
</div>
|
2001
|
+
|
2002
|
+
<div id="method-M000014" class="method-detail">
|
2003
|
+
<a name="M000014"></a>
|
2004
|
+
|
2005
|
+
<div class="method-heading">
|
2006
|
+
<a href="#M000014" class="method-signature">
|
2007
|
+
<span class="method-name">tail</span><span class="method-args">()</span>
|
2008
|
+
</a>
|
2009
|
+
</div>
|
2010
|
+
|
2011
|
+
<div class="method-description">
|
2012
|
+
<table>
|
2013
|
+
<tr><td valign="top">tail — :</td><td>[a] -> [a]
|
2014
|
+
|
2015
|
+
</td></tr>
|
2016
|
+
</table>
|
2017
|
+
<p><a class="source-toggle" href="#"
|
2018
|
+
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
2019
|
+
<div class="method-source-code" id="M000014-source">
|
2020
|
+
<pre>
|
2021
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 65</span>
|
2022
|
+
65: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tail</span>
|
2023
|
+
66: <span class="ruby-keyword kw">self</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
|
2024
|
+
67: <span class="ruby-keyword kw">end</span>
|
2025
|
+
</pre>
|
2026
|
+
</div>
|
2027
|
+
</div>
|
2028
|
+
</div>
|
2029
|
+
|
2030
|
+
<div id="method-M000061" class="method-detail">
|
2031
|
+
<a name="M000061"></a>
|
2032
|
+
|
2033
|
+
<div class="method-heading">
|
2034
|
+
<a href="#M000061" class="method-signature">
|
2035
|
+
<span class="method-name">tails</span><span class="method-args">()</span>
|
2036
|
+
</a>
|
2037
|
+
</div>
|
2038
|
+
|
2039
|
+
<div class="method-description">
|
2040
|
+
<table>
|
2041
|
+
<tr><td valign="top">tails — :</td><td>[a] -> [[a]]
|
2042
|
+
|
2043
|
+
</td></tr>
|
2044
|
+
</table>
|
2045
|
+
<p><a class="source-toggle" href="#"
|
2046
|
+
onclick="toggleCode('M000061-source');return false;">[Source]</a></p>
|
2047
|
+
<div class="method-source-code" id="M000061-source">
|
2048
|
+
<pre>
|
2049
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 333</span>
|
2050
|
+
333: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">tails</span>
|
2051
|
+
334: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'tails' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2052
|
+
335: <span class="ruby-keyword kw">return</span> []
|
2053
|
+
336: <span class="ruby-keyword kw">end</span>
|
2054
|
+
</pre>
|
2055
|
+
</div>
|
2056
|
+
</div>
|
2057
|
+
</div>
|
2058
|
+
|
2059
|
+
<div id="method-M000049" class="method-detail">
|
2060
|
+
<a name="M000049"></a>
|
2061
|
+
|
2062
|
+
<div class="method-heading">
|
2063
|
+
<a href="#M000049" class="method-signature">
|
2064
|
+
<span class="method-name">take</span><span class="method-args">(n)</span>
|
2065
|
+
</a>
|
2066
|
+
</div>
|
2067
|
+
|
2068
|
+
<div class="method-description">
|
2069
|
+
<table>
|
2070
|
+
<tr><td valign="top">take — :</td><td>Int -> [a] -> [a]
|
2071
|
+
|
2072
|
+
</td></tr>
|
2073
|
+
</table>
|
2074
|
+
<p><a class="source-toggle" href="#"
|
2075
|
+
onclick="toggleCode('M000049-source');return false;">[Source]</a></p>
|
2076
|
+
<div class="method-source-code" id="M000049-source">
|
2077
|
+
<pre>
|
2078
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 272</span>
|
2079
|
+
272: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">take</span>(<span class="ruby-identifier">n</span>)
|
2080
|
+
273: <span class="ruby-keyword kw">self</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">n</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)]
|
2081
|
+
274: <span class="ruby-keyword kw">end</span>
|
2082
|
+
</pre>
|
2083
|
+
</div>
|
2084
|
+
</div>
|
2085
|
+
</div>
|
2086
|
+
|
2087
|
+
<div id="method-M000054" class="method-detail">
|
2088
|
+
<a name="M000054"></a>
|
2089
|
+
|
2090
|
+
<div class="method-heading">
|
2091
|
+
<span class="method-name">takeWhile</span><span class="method-args">()</span>
|
2092
|
+
</div>
|
2093
|
+
|
2094
|
+
<div class="method-description">
|
2095
|
+
<p>
|
2096
|
+
Alias for <a href="List.html#M000053">take_while</a>
|
2097
|
+
</p>
|
2098
|
+
</div>
|
2099
|
+
</div>
|
2100
|
+
|
2101
|
+
<div id="method-M000053" class="method-detail">
|
2102
|
+
<a name="M000053"></a>
|
2103
|
+
|
2104
|
+
<div class="method-heading">
|
2105
|
+
<a href="#M000053" class="method-signature">
|
2106
|
+
<span class="method-name">take_while</span><span class="method-args">() {|e| ...}</span>
|
2107
|
+
</a>
|
2108
|
+
</div>
|
2109
|
+
|
2110
|
+
<div class="method-description">
|
2111
|
+
<table>
|
2112
|
+
<tr><td valign="top">takeWhile — :</td><td>(a -> Bool) -> [a] -> [a]
|
2113
|
+
|
2114
|
+
</td></tr>
|
2115
|
+
</table>
|
2116
|
+
<p><a class="source-toggle" href="#"
|
2117
|
+
onclick="toggleCode('M000053-source');return false;">[Source]</a></p>
|
2118
|
+
<div class="method-source-code" id="M000053-source">
|
2119
|
+
<pre>
|
2120
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 288</span>
|
2121
|
+
288: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">take_while</span>
|
2122
|
+
289: <span class="ruby-identifier">r</span> = []
|
2123
|
+
290: <span class="ruby-identifier">each</span>{ <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
|
2124
|
+
291: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">e</span>)
|
2125
|
+
292: <span class="ruby-identifier">r</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">e</span>
|
2126
|
+
293: }
|
2127
|
+
294: <span class="ruby-identifier">r</span>
|
2128
|
+
295: <span class="ruby-keyword kw">end</span>
|
2129
|
+
</pre>
|
2130
|
+
</div>
|
2131
|
+
</div>
|
2132
|
+
</div>
|
2133
|
+
|
2134
|
+
<div id="method-M000048" class="method-detail">
|
2135
|
+
<a name="M000048"></a>
|
2136
|
+
|
2137
|
+
<div class="method-heading">
|
2138
|
+
<a href="#M000048" class="method-signature">
|
2139
|
+
<span class="method-name">unfoldr</span><span class="method-args">()</span>
|
2140
|
+
</a>
|
2141
|
+
</div>
|
2142
|
+
|
2143
|
+
<div class="method-description">
|
2144
|
+
<table>
|
2145
|
+
<tr><td valign="top">unfoldr — :</td><td>(b -> Maybe (a, b)) -> b -> [a]
|
2146
|
+
|
2147
|
+
</td></tr>
|
2148
|
+
</table>
|
2149
|
+
<p><a class="source-toggle" href="#"
|
2150
|
+
onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
|
2151
|
+
<div class="method-source-code" id="M000048-source">
|
2152
|
+
<pre>
|
2153
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 261</span>
|
2154
|
+
261: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unfoldr</span>
|
2155
|
+
262: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'unfoldr' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2156
|
+
263: <span class="ruby-keyword kw">return</span> []
|
2157
|
+
264: <span class="ruby-keyword kw">end</span>
|
2158
|
+
</pre>
|
2159
|
+
</div>
|
2160
|
+
</div>
|
2161
|
+
</div>
|
2162
|
+
|
2163
|
+
<div id="method-M000096" class="method-detail">
|
2164
|
+
<a name="M000096"></a>
|
2165
|
+
|
2166
|
+
<div class="method-heading">
|
2167
|
+
<a href="#M000096" class="method-signature">
|
2168
|
+
<span class="method-name">union</span><span class="method-args">()</span>
|
2169
|
+
</a>
|
2170
|
+
</div>
|
2171
|
+
|
2172
|
+
<div class="method-description">
|
2173
|
+
<table>
|
2174
|
+
<tr><td valign="top">union — :</td><td>(Eq a) => [a] -> [a] -> [a]
|
2175
|
+
|
2176
|
+
</td></tr>
|
2177
|
+
</table>
|
2178
|
+
<p><a class="source-toggle" href="#"
|
2179
|
+
onclick="toggleCode('M000096-source');return false;">[Source]</a></p>
|
2180
|
+
<div class="method-source-code" id="M000096-source">
|
2181
|
+
<pre>
|
2182
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 522</span>
|
2183
|
+
522: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">union</span>
|
2184
|
+
523: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'union' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2185
|
+
524: <span class="ruby-keyword kw">return</span> []
|
2186
|
+
525: <span class="ruby-keyword kw">end</span>
|
2187
|
+
</pre>
|
2188
|
+
</div>
|
2189
|
+
</div>
|
2190
|
+
</div>
|
2191
|
+
|
2192
|
+
<div id="method-M000092" class="method-detail">
|
2193
|
+
<a name="M000092"></a>
|
2194
|
+
|
2195
|
+
<div class="method-heading">
|
2196
|
+
<a href="#M000092" class="method-signature">
|
2197
|
+
<span class="method-name">unlines</span><span class="method-args">()</span>
|
2198
|
+
</a>
|
2199
|
+
</div>
|
2200
|
+
|
2201
|
+
<div class="method-description">
|
2202
|
+
<table>
|
2203
|
+
<tr><td valign="top">unlines — :</td><td>[String] -> String
|
2204
|
+
|
2205
|
+
</td></tr>
|
2206
|
+
</table>
|
2207
|
+
<p><a class="source-toggle" href="#"
|
2208
|
+
onclick="toggleCode('M000092-source');return false;">[Source]</a></p>
|
2209
|
+
<div class="method-source-code" id="M000092-source">
|
2210
|
+
<pre>
|
2211
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 494</span>
|
2212
|
+
494: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unlines</span>
|
2213
|
+
495: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'unlines' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2214
|
+
496: <span class="ruby-keyword kw">return</span> []
|
2215
|
+
497: <span class="ruby-keyword kw">end</span>
|
2216
|
+
</pre>
|
2217
|
+
</div>
|
2218
|
+
</div>
|
2219
|
+
</div>
|
2220
|
+
|
2221
|
+
<div id="method-M000093" class="method-detail">
|
2222
|
+
<a name="M000093"></a>
|
2223
|
+
|
2224
|
+
<div class="method-heading">
|
2225
|
+
<a href="#M000093" class="method-signature">
|
2226
|
+
<span class="method-name">unwords</span><span class="method-args">()</span>
|
2227
|
+
</a>
|
2228
|
+
</div>
|
2229
|
+
|
2230
|
+
<div class="method-description">
|
2231
|
+
<table>
|
2232
|
+
<tr><td valign="top">unwords — :</td><td>[String] -> String
|
2233
|
+
|
2234
|
+
</td></tr>
|
2235
|
+
</table>
|
2236
|
+
<p><a class="source-toggle" href="#"
|
2237
|
+
onclick="toggleCode('M000093-source');return false;">[Source]</a></p>
|
2238
|
+
<div class="method-source-code" id="M000093-source">
|
2239
|
+
<pre>
|
2240
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 500</span>
|
2241
|
+
500: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unwords</span>
|
2242
|
+
501: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'unwords' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2243
|
+
502: <span class="ruby-keyword kw">return</span> []
|
2244
|
+
503: <span class="ruby-keyword kw">end</span>
|
2245
|
+
</pre>
|
2246
|
+
</div>
|
2247
|
+
</div>
|
2248
|
+
</div>
|
2249
|
+
|
2250
|
+
<div id="method-M000087" class="method-detail">
|
2251
|
+
<a name="M000087"></a>
|
2252
|
+
|
2253
|
+
<div class="method-heading">
|
2254
|
+
<a href="#M000087" class="method-signature">
|
2255
|
+
<span class="method-name">unzip</span><span class="method-args">()</span>
|
2256
|
+
</a>
|
2257
|
+
</div>
|
2258
|
+
|
2259
|
+
<div class="method-description">
|
2260
|
+
<table>
|
2261
|
+
<tr><td valign="top">unzip — :</td><td>[(a,b)] -> ([a],[b])
|
2262
|
+
|
2263
|
+
</td></tr>
|
2264
|
+
</table>
|
2265
|
+
<p><a class="source-toggle" href="#"
|
2266
|
+
onclick="toggleCode('M000087-source');return false;">[Source]</a></p>
|
2267
|
+
<div class="method-source-code" id="M000087-source">
|
2268
|
+
<pre>
|
2269
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 459</span>
|
2270
|
+
459: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unzip</span>
|
2271
|
+
460: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'unzip' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2272
|
+
461: <span class="ruby-keyword kw">return</span> []
|
2273
|
+
462: <span class="ruby-keyword kw">end</span>
|
2274
|
+
</pre>
|
2275
|
+
</div>
|
2276
|
+
</div>
|
2277
|
+
</div>
|
2278
|
+
|
2279
|
+
<div id="method-M000088" class="method-detail">
|
2280
|
+
<a name="M000088"></a>
|
2281
|
+
|
2282
|
+
<div class="method-heading">
|
2283
|
+
<a href="#M000088" class="method-signature">
|
2284
|
+
<span class="method-name">unzip3</span><span class="method-args">()</span>
|
2285
|
+
</a>
|
2286
|
+
</div>
|
2287
|
+
|
2288
|
+
<div class="method-description">
|
2289
|
+
<p>
|
2290
|
+
unzip3
|
2291
|
+
</p>
|
2292
|
+
<p><a class="source-toggle" href="#"
|
2293
|
+
onclick="toggleCode('M000088-source');return false;">[Source]</a></p>
|
2294
|
+
<div class="method-source-code" id="M000088-source">
|
2295
|
+
<pre>
|
2296
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 465</span>
|
2297
|
+
465: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unzip3</span>
|
2298
|
+
466: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'unzip3' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2299
|
+
467: <span class="ruby-keyword kw">return</span> []
|
2300
|
+
468: <span class="ruby-keyword kw">end</span>
|
2301
|
+
</pre>
|
2302
|
+
</div>
|
2303
|
+
</div>
|
2304
|
+
</div>
|
2305
|
+
|
2306
|
+
<div id="method-M000089" class="method-detail">
|
2307
|
+
<a name="M000089"></a>
|
2308
|
+
|
2309
|
+
<div class="method-heading">
|
2310
|
+
<a href="#M000089" class="method-signature">
|
2311
|
+
<span class="method-name">unzip4</span><span class="method-args">()</span>
|
2312
|
+
</a>
|
2313
|
+
</div>
|
2314
|
+
|
2315
|
+
<div class="method-description">
|
2316
|
+
<p>
|
2317
|
+
unzip4, unzip5, unzip6, unzip7
|
2318
|
+
</p>
|
2319
|
+
<p><a class="source-toggle" href="#"
|
2320
|
+
onclick="toggleCode('M000089-source');return false;">[Source]</a></p>
|
2321
|
+
<div class="method-source-code" id="M000089-source">
|
2322
|
+
<pre>
|
2323
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 471</span>
|
2324
|
+
471: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unzip4</span>
|
2325
|
+
472: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'unzip4' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2326
|
+
473: <span class="ruby-keyword kw">return</span> []
|
2327
|
+
474: <span class="ruby-keyword kw">end</span>
|
2328
|
+
</pre>
|
2329
|
+
</div>
|
2330
|
+
</div>
|
2331
|
+
</div>
|
2332
|
+
|
2333
|
+
<div id="method-M000091" class="method-detail">
|
2334
|
+
<a name="M000091"></a>
|
2335
|
+
|
2336
|
+
<div class="method-heading">
|
2337
|
+
<a href="#M000091" class="method-signature">
|
2338
|
+
<span class="method-name">words</span><span class="method-args">()</span>
|
2339
|
+
</a>
|
2340
|
+
</div>
|
2341
|
+
|
2342
|
+
<div class="method-description">
|
2343
|
+
<table>
|
2344
|
+
<tr><td valign="top">words — :</td><td>String -> [String]
|
2345
|
+
|
2346
|
+
</td></tr>
|
2347
|
+
</table>
|
2348
|
+
<p><a class="source-toggle" href="#"
|
2349
|
+
onclick="toggleCode('M000091-source');return false;">[Source]</a></p>
|
2350
|
+
<div class="method-source-code" id="M000091-source">
|
2351
|
+
<pre>
|
2352
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 488</span>
|
2353
|
+
488: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">words</span>
|
2354
|
+
489: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'words' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2355
|
+
490: <span class="ruby-keyword kw">return</span> []
|
2356
|
+
491: <span class="ruby-keyword kw">end</span>
|
2357
|
+
</pre>
|
2358
|
+
</div>
|
2359
|
+
</div>
|
2360
|
+
</div>
|
2361
|
+
|
2362
|
+
<div id="method-M000079" class="method-detail">
|
2363
|
+
<a name="M000079"></a>
|
2364
|
+
|
2365
|
+
<div class="method-heading">
|
2366
|
+
<a href="#M000079" class="method-signature">
|
2367
|
+
<span class="method-name">zip3</span><span class="method-args">()</span>
|
2368
|
+
</a>
|
2369
|
+
</div>
|
2370
|
+
|
2371
|
+
<div class="method-description">
|
2372
|
+
<p>
|
2373
|
+
zip3
|
2374
|
+
</p>
|
2375
|
+
<p><a class="source-toggle" href="#"
|
2376
|
+
onclick="toggleCode('M000079-source');return false;">[Source]</a></p>
|
2377
|
+
<div class="method-source-code" id="M000079-source">
|
2378
|
+
<pre>
|
2379
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 424</span>
|
2380
|
+
424: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">zip3</span>
|
2381
|
+
425: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'zip3' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2382
|
+
426: <span class="ruby-keyword kw">return</span> []
|
2383
|
+
427: <span class="ruby-keyword kw">end</span>
|
2384
|
+
</pre>
|
2385
|
+
</div>
|
2386
|
+
</div>
|
2387
|
+
</div>
|
2388
|
+
|
2389
|
+
<div id="method-M000080" class="method-detail">
|
2390
|
+
<a name="M000080"></a>
|
2391
|
+
|
2392
|
+
<div class="method-heading">
|
2393
|
+
<a href="#M000080" class="method-signature">
|
2394
|
+
<span class="method-name">zip4</span><span class="method-args">()</span>
|
2395
|
+
</a>
|
2396
|
+
</div>
|
2397
|
+
|
2398
|
+
<div class="method-description">
|
2399
|
+
<p>
|
2400
|
+
zip4, zip5, zip6, zip7
|
2401
|
+
</p>
|
2402
|
+
<p><a class="source-toggle" href="#"
|
2403
|
+
onclick="toggleCode('M000080-source');return false;">[Source]</a></p>
|
2404
|
+
<div class="method-source-code" id="M000080-source">
|
2405
|
+
<pre>
|
2406
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 430</span>
|
2407
|
+
430: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">zip4</span>
|
2408
|
+
431: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'zip4' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2409
|
+
432: <span class="ruby-keyword kw">return</span> []
|
2410
|
+
433: <span class="ruby-keyword kw">end</span>
|
2411
|
+
</pre>
|
2412
|
+
</div>
|
2413
|
+
</div>
|
2414
|
+
</div>
|
2415
|
+
|
2416
|
+
<div id="method-M000082" class="method-detail">
|
2417
|
+
<a name="M000082"></a>
|
2418
|
+
|
2419
|
+
<div class="method-heading">
|
2420
|
+
<span class="method-name">zipWith</span><span class="method-args">()</span>
|
2421
|
+
</div>
|
2422
|
+
|
2423
|
+
<div class="method-description">
|
2424
|
+
<p>
|
2425
|
+
Alias for <a href="List.html#M000081">zip_with</a>
|
2426
|
+
</p>
|
2427
|
+
</div>
|
2428
|
+
</div>
|
2429
|
+
|
2430
|
+
<div id="method-M000084" class="method-detail">
|
2431
|
+
<a name="M000084"></a>
|
2432
|
+
|
2433
|
+
<div class="method-heading">
|
2434
|
+
<span class="method-name">zipWith3</span><span class="method-args">()</span>
|
2435
|
+
</div>
|
2436
|
+
|
2437
|
+
<div class="method-description">
|
2438
|
+
<p>
|
2439
|
+
Alias for <a href="List.html#M000083">zip_with3</a>
|
2440
|
+
</p>
|
2441
|
+
</div>
|
2442
|
+
</div>
|
2443
|
+
|
2444
|
+
<div id="method-M000086" class="method-detail">
|
2445
|
+
<a name="M000086"></a>
|
2446
|
+
|
2447
|
+
<div class="method-heading">
|
2448
|
+
<span class="method-name">zipWith4</span><span class="method-args">()</span>
|
2449
|
+
</div>
|
2450
|
+
|
2451
|
+
<div class="method-description">
|
2452
|
+
<p>
|
2453
|
+
Alias for <a href="List.html#M000085">zip_with4</a>
|
2454
|
+
</p>
|
2455
|
+
</div>
|
2456
|
+
</div>
|
2457
|
+
|
2458
|
+
<div id="method-M000081" class="method-detail">
|
2459
|
+
<a name="M000081"></a>
|
2460
|
+
|
2461
|
+
<div class="method-heading">
|
2462
|
+
<a href="#M000081" class="method-signature">
|
2463
|
+
<span class="method-name">zip_with</span><span class="method-args">()</span>
|
2464
|
+
</a>
|
2465
|
+
</div>
|
2466
|
+
|
2467
|
+
<div class="method-description">
|
2468
|
+
<table>
|
2469
|
+
<tr><td valign="top">zipWith — :</td><td>(a -> b -> c) -> [a] -> [b] -> [c]
|
2470
|
+
|
2471
|
+
</td></tr>
|
2472
|
+
</table>
|
2473
|
+
<p><a class="source-toggle" href="#"
|
2474
|
+
onclick="toggleCode('M000081-source');return false;">[Source]</a></p>
|
2475
|
+
<div class="method-source-code" id="M000081-source">
|
2476
|
+
<pre>
|
2477
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 437</span>
|
2478
|
+
437: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">zip_with</span>
|
2479
|
+
438: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'zip_with' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2480
|
+
439: <span class="ruby-keyword kw">return</span> []
|
2481
|
+
440: <span class="ruby-keyword kw">end</span>
|
2482
|
+
</pre>
|
2483
|
+
</div>
|
2484
|
+
</div>
|
2485
|
+
</div>
|
2486
|
+
|
2487
|
+
<div id="method-M000083" class="method-detail">
|
2488
|
+
<a name="M000083"></a>
|
2489
|
+
|
2490
|
+
<div class="method-heading">
|
2491
|
+
<a href="#M000083" class="method-signature">
|
2492
|
+
<span class="method-name">zip_with3</span><span class="method-args">()</span>
|
2493
|
+
</a>
|
2494
|
+
</div>
|
2495
|
+
|
2496
|
+
<div class="method-description">
|
2497
|
+
<p>
|
2498
|
+
zipWith3
|
2499
|
+
</p>
|
2500
|
+
<p><a class="source-toggle" href="#"
|
2501
|
+
onclick="toggleCode('M000083-source');return false;">[Source]</a></p>
|
2502
|
+
<div class="method-source-code" id="M000083-source">
|
2503
|
+
<pre>
|
2504
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 444</span>
|
2505
|
+
444: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">zip_with3</span>
|
2506
|
+
445: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'zip_with3' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2507
|
+
446: <span class="ruby-keyword kw">return</span> []
|
2508
|
+
447: <span class="ruby-keyword kw">end</span>
|
2509
|
+
</pre>
|
2510
|
+
</div>
|
2511
|
+
</div>
|
2512
|
+
</div>
|
2513
|
+
|
2514
|
+
<div id="method-M000085" class="method-detail">
|
2515
|
+
<a name="M000085"></a>
|
2516
|
+
|
2517
|
+
<div class="method-heading">
|
2518
|
+
<a href="#M000085" class="method-signature">
|
2519
|
+
<span class="method-name">zip_with4</span><span class="method-args">()</span>
|
2520
|
+
</a>
|
2521
|
+
</div>
|
2522
|
+
|
2523
|
+
<div class="method-description">
|
2524
|
+
<p>
|
2525
|
+
zipWith4, zipWith5, zipWith6, zipWith7
|
2526
|
+
</p>
|
2527
|
+
<p><a class="source-toggle" href="#"
|
2528
|
+
onclick="toggleCode('M000085-source');return false;">[Source]</a></p>
|
2529
|
+
<div class="method-source-code" id="M000085-source">
|
2530
|
+
<pre>
|
2531
|
+
<span class="ruby-comment cmt"># File lib/prelude/list.rb, line 451</span>
|
2532
|
+
451: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">zip_with4</span>
|
2533
|
+
452: <span class="ruby-identifier">warn</span> <span class="ruby-value str">"Method 'zip_with4' is not implemented yet."</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$VERBOSE</span>
|
2534
|
+
453: <span class="ruby-keyword kw">return</span> []
|
2535
|
+
454: <span class="ruby-keyword kw">end</span>
|
2536
|
+
</pre>
|
2537
|
+
</div>
|
2538
|
+
</div>
|
2539
|
+
</div>
|
2540
|
+
|
2541
|
+
|
2542
|
+
</div>
|
2543
|
+
|
2544
|
+
|
2545
|
+
</div>
|
2546
|
+
|
2547
|
+
|
2548
|
+
</body>
|
2549
|
+
</html>
|