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/README CHANGED
@@ -1,28 +1,144 @@
1
1
  = Prelude - a Haskell-like functional library
2
2
 
3
- $Id: README 2 2006-08-25 00:11:17Z prelude $
3
+ $Id: README 7 2006-09-06 17:03:26Z prelude $
4
4
 
5
- +WARNING+ <em>The project is still in a very preliminary state. Only List was partially implemented. Feel free to conftribute.</em>
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
- The goal of this project is to enables Ruby programmers to use higher functions, monads, infinite lists, and other Haskell features. I do believe the old math's maxim that "new notation leads to new results.
8
+ Project home is at http://rubyforge.org/projects/prelude/
8
9
 
9
- == What's in a name
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
- Since most of the functionality to be implemented here is defined in Haskell's prelude package, the name +Prelude+ seemed natural at the inception time.
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
- === Reinforced Ruby's Lambda-calculus including currying, folds, etc.
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
- === Higher level functions
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 http://prelude.rubyforge.org
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 http://www.gnu.org/licenses/gpl.txt
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 2006-08-25 00:11:17Z prelude $
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 program is free software; you can redistribute it and/or modify
12
- # it under the terms of the GNU General Public License as published by
13
- # the Free Software Foundation; either version 2 of the License, or
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 program is distributed in the hope that it will be useful,
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
- # GNU General Public License for more details.
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 License along
22
- # with this program; if not, write to the Free Software Foundation, Inc.,
23
- # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
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 = "#{ENV['template']}.rb" if ENV['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 = [ "Rakefile", "README", "TODO", "CHANGELOG", "COPYING" ]
97
- s.files = s.files + Dir.glob( "doc/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
98
- s.files = s.files + Dir.glob( "examples/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
99
- s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
100
- s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) }
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&#8217;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 &#8212; :: [a] -&gt; a
99
+
100
+ </li>
101
+ <li>length &#8212; :: [a] -&gt; Int
102
+
103
+ </li>
104
+ <li>map &#8212; :: (a -&gt; b) -&gt; [a] -&gt; [b]
105
+
106
+ </li>
107
+ <li>reverse &#8212; :: [a] -&gt; [a]
108
+
109
+ </li>
110
+ <li>transpose &#8212; :: [[a]] -&gt; [[a]]
111
+
112
+ </li>
113
+ <li>find &#8212; :: (a -&gt; Bool) -&gt; [a] -&gt; Maybe a
114
+
115
+ </li>
116
+ <li>partition &#8212; :: (a -&gt; Bool) -&gt; [a] -&gt; ([a], [a])
117
+
118
+ </li>
119
+ <li>zip &#8212; :: [a] -&gt; [b] -&gt; [(a,b)]
120
+
121
+ </li>
122
+ <li>sort &#8212; :: (Ord a) =&gt; [a] -&gt; [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>(!!) &#8212; :: [a] -&gt; Int -&gt; a
131
+
132
+ </li>
133
+ <li>(\) &#8212; :: (Eq a) =&gt; [a] -&gt; [a] -&gt; [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>&nbsp;&nbsp;
148
+ <a href="#M000031">all</a>&nbsp;&nbsp;
149
+ <a href="#M000028">and</a>&nbsp;&nbsp;
150
+ <a href="#M000030">any</a>&nbsp;&nbsp;
151
+ <a href="#M000058">break</a>&nbsp;&nbsp;
152
+ <a href="#M000025">concat</a>&nbsp;&nbsp;
153
+ <a href="#M000027">concatMap</a>&nbsp;&nbsp;
154
+ <a href="#M000026">concat_map</a>&nbsp;&nbsp;
155
+ <a href="#M000047">cycle</a>&nbsp;&nbsp;
156
+ <a href="#M000095">delete</a>&nbsp;&nbsp;
157
+ <a href="#M000050">drop</a>&nbsp;&nbsp;
158
+ <a href="#M000056">dropWhile</a>&nbsp;&nbsp;
159
+ <a href="#M000055">drop_while</a>&nbsp;&nbsp;
160
+ <a href="#M000066">elem</a>&nbsp;&nbsp;
161
+ <a href="#M000072">elemIndex</a>&nbsp;&nbsp;
162
+ <a href="#M000074">elemIndices</a>&nbsp;&nbsp;
163
+ <a href="#M000071">elem_index</a>&nbsp;&nbsp;
164
+ <a href="#M000073">elem_indices</a>&nbsp;&nbsp;
165
+ <a href="#M000018">f_foldl</a>&nbsp;&nbsp;
166
+ <a href="#M000070">filter</a>&nbsp;&nbsp;
167
+ <a href="#M000076">findIndex</a>&nbsp;&nbsp;
168
+ <a href="#M000078">findIndices</a>&nbsp;&nbsp;
169
+ <a href="#M000075">find_index</a>&nbsp;&nbsp;
170
+ <a href="#M000077">find_indices</a>&nbsp;&nbsp;
171
+ <a href="#M000019">foldl</a>&nbsp;&nbsp;
172
+ <a href="#M000021">foldl1</a>&nbsp;&nbsp;
173
+ <a href="#M000022">foldl1_</a>&nbsp;&nbsp;
174
+ <a href="#M000020">foldl_</a>&nbsp;&nbsp;
175
+ <a href="#M000023">foldr</a>&nbsp;&nbsp;
176
+ <a href="#M000024">foldr1</a>&nbsp;&nbsp;
177
+ <a href="#M000059">group</a>&nbsp;&nbsp;
178
+ <a href="#M000013">head</a>&nbsp;&nbsp;
179
+ <a href="#M000015">init</a>&nbsp;&nbsp;
180
+ <a href="#M000060">inits</a>&nbsp;&nbsp;
181
+ <a href="#M000098">insert</a>&nbsp;&nbsp;
182
+ <a href="#M000097">intersect</a>&nbsp;&nbsp;
183
+ <a href="#M000017">intersperse</a>&nbsp;&nbsp;
184
+ <a href="#M000063">isPrefixOf</a>&nbsp;&nbsp;
185
+ <a href="#M000065">isSuffixOf</a>&nbsp;&nbsp;
186
+ <a href="#M000062">is_prefix_of</a>&nbsp;&nbsp;
187
+ <a href="#M000064">is_suffix_of</a>&nbsp;&nbsp;
188
+ <a href="#M000044">iterate</a>&nbsp;&nbsp;
189
+ <a href="#M000090">lines</a>&nbsp;&nbsp;
190
+ <a href="#M000069">lookup</a>&nbsp;&nbsp;
191
+ <a href="#M000041">mapAccumL</a>&nbsp;&nbsp;
192
+ <a href="#M000043">mapAccumR</a>&nbsp;&nbsp;
193
+ <a href="#M000040">map_accum_l</a>&nbsp;&nbsp;
194
+ <a href="#M000042">map_accum_r</a>&nbsp;&nbsp;
195
+ <a href="#M000034">maximum</a>&nbsp;&nbsp;
196
+ <a href="#M000035">minimum</a>&nbsp;&nbsp;
197
+ <a href="#M000068">notElem</a>&nbsp;&nbsp;
198
+ <a href="#M000067">not_elem</a>&nbsp;&nbsp;
199
+ <a href="#M000094">nub</a>&nbsp;&nbsp;
200
+ <a href="#M000016">null</a>&nbsp;&nbsp;
201
+ <a href="#M000029">or</a>&nbsp;&nbsp;
202
+ <a href="#M000033">product</a>&nbsp;&nbsp;
203
+ <a href="#M000045">repeat</a>&nbsp;&nbsp;
204
+ <a href="#M000046">replicate</a>&nbsp;&nbsp;
205
+ <a href="#M000036">scanl</a>&nbsp;&nbsp;
206
+ <a href="#M000037">scanl1</a>&nbsp;&nbsp;
207
+ <a href="#M000038">scanr</a>&nbsp;&nbsp;
208
+ <a href="#M000039">scanr1</a>&nbsp;&nbsp;
209
+ <a href="#M000057">span</a>&nbsp;&nbsp;
210
+ <a href="#M000052">splitAt</a>&nbsp;&nbsp;
211
+ <a href="#M000051">split_at</a>&nbsp;&nbsp;
212
+ <a href="#M000032">sum</a>&nbsp;&nbsp;
213
+ <a href="#M000014">tail</a>&nbsp;&nbsp;
214
+ <a href="#M000061">tails</a>&nbsp;&nbsp;
215
+ <a href="#M000049">take</a>&nbsp;&nbsp;
216
+ <a href="#M000054">takeWhile</a>&nbsp;&nbsp;
217
+ <a href="#M000053">take_while</a>&nbsp;&nbsp;
218
+ <a href="#M000048">unfoldr</a>&nbsp;&nbsp;
219
+ <a href="#M000096">union</a>&nbsp;&nbsp;
220
+ <a href="#M000092">unlines</a>&nbsp;&nbsp;
221
+ <a href="#M000093">unwords</a>&nbsp;&nbsp;
222
+ <a href="#M000087">unzip</a>&nbsp;&nbsp;
223
+ <a href="#M000088">unzip3</a>&nbsp;&nbsp;
224
+ <a href="#M000089">unzip4</a>&nbsp;&nbsp;
225
+ <a href="#M000091">words</a>&nbsp;&nbsp;
226
+ <a href="#M000079">zip3</a>&nbsp;&nbsp;
227
+ <a href="#M000080">zip4</a>&nbsp;&nbsp;
228
+ <a href="#M000082">zipWith</a>&nbsp;&nbsp;
229
+ <a href="#M000084">zipWith3</a>&nbsp;&nbsp;
230
+ <a href="#M000086">zipWith4</a>&nbsp;&nbsp;
231
+ <a href="#M000081">zip_with</a>&nbsp;&nbsp;
232
+ <a href="#M000083">zip_with3</a>&nbsp;&nbsp;
233
+ <a href="#M000085">zip_with4</a>&nbsp;&nbsp;
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>-&gt;</td>
254
+ <td class="context-item-value">array_plus</td>
255
+ </tr>
256
+ <tr class="top-aligned-row context-row">
257
+ <td>&nbsp;</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">(&amp;block)</span>
304
+ </a>
305
+ </div>
306
+
307
+ <div class="method-description">
308
+ <table>
309
+ <tr><td valign="top">all &#8212; :</td><td>(a -&gt; Bool) -&gt; [a] -&gt; 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">&amp;</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 &#8212; :</td><td>[Bool] -&gt; 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">&amp;&amp;</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">(&amp;block)</span>
361
+ </a>
362
+ </div>
363
+
364
+ <div class="method-description">
365
+ <table>
366
+ <tr><td valign="top">any &#8212; :</td><td>(a -&gt; Bool) -&gt; [a] -&gt; 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">&amp;</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 &#8212; :</td><td>(a -&gt; Bool) -&gt; [a] -&gt; ([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">&quot;Method 'break' is not implemented yet.&quot;</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 &#8212; :</td><td>[[a]] -&gt; [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 &#8212; :</td><td>(a -&gt; [b]) -&gt; [a] -&gt; [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">&quot;Method 'concatMap' is not implemented yet.&quot;</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 &#8212; :</td><td>[a] -&gt; [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">&quot;Method 'cycle' is not implemented yet.&quot;</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 &#8212; :</td><td>(Eq a) =&gt; a -&gt; [a] -&gt; [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">&quot;Method 'delete' is not implemented yet.&quot;</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 &#8212; :</td><td>Int -&gt; [a] -&gt; [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 &#8212; :</td><td>(a -&gt; Bool) -&gt; [a] -&gt; [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">&lt;&lt;</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 &#8212; :</td><td>a -&gt; [a] -&gt; 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">&quot;Method 'elem' is not implemented yet.&quot;</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 &#8212; :</td><td>(Eq a) =&gt; a -&gt; [a] -&gt; 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">&quot;Method 'elem_index' is not implemented yet.&quot;</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 &#8212; :</td><td>(Eq a) =&gt; a -&gt; [a] -&gt; [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">&quot;Method 'elem_indices' is not implemented yet.&quot;</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, &amp;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&#8230; So don&#8217;t use it, it&#8217;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">&amp;</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">&amp;</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 &#8212; :</td><td>(a -&gt; Bool) -&gt; [a] -&gt; [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">&quot;Method 'filter' is not implemented yet.&quot;</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 &#8212; :</td><td>(a -&gt; Bool) -&gt; [a] -&gt; 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">&quot;Method 'find_index' is not implemented yet.&quot;</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 &#8212; :</td><td>(a -&gt; Bool) -&gt; [a] -&gt; [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">&quot;Method 'find_indices' is not implemented yet.&quot;</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, &amp;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 &#8212; :</td><td>(a -&gt; b -&gt; a) -&gt; a -&gt; [b] -&gt; 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">&amp;</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">(&amp;block)</span>
919
+ </a>
920
+ </div>
921
+
922
+ <div class="method-description">
923
+ <table>
924
+ <tr><td valign="top">foldl1 &#8212; :</td><td>(a -&gt; a -&gt; a) -&gt; [a] -&gt; 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">&amp;</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">&amp;</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&#8217; &#8212; :</td><td>(a -&gt; a -&gt; a) -&gt; [a] -&gt; 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">&quot;Method 'foldl1_' is not implemented yet.&quot;</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&#8217; &#8212; :</td><td>(a -&gt; b -&gt; a) -&gt; a -&gt; [b] -&gt; 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">&quot;Method 'foldl_' is not implemented yet.&quot;</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, &amp;block)</span>
1005
+ </a>
1006
+ </div>
1007
+
1008
+ <div class="method-description">
1009
+ <table>
1010
+ <tr><td valign="top">foldr &#8212; :</td><td>(a -&gt; b -&gt; b) -&gt; b -&gt; [a] -&gt; 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">&amp;</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">(&amp;block)</span>
1033
+ </a>
1034
+ </div>
1035
+
1036
+ <div class="method-description">
1037
+ <table>
1038
+ <tr><td valign="top">foldr1 &#8212; :</td><td>(a -&gt; a -&gt; a) -&gt; [a] -&gt; 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">&amp;</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">&amp;</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 &#8212; :</td><td>Eq a =&gt; [a] -&gt; [[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">&quot;Method 'group' is not implemented yet.&quot;</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 &#8212; :</td><td>[a] -&gt; 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 &#8212; :</td><td>[a] -&gt; [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 &#8212; :</td><td>[a] -&gt; [[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">&quot;Method 'inits' is not implemented yet.&quot;</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 &#8212; :</td><td>(Ord a) =&gt; a -&gt; [a] -&gt; [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">&quot;Method 'insert' is not implemented yet.&quot;</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 &#8212; :</td><td>(Eq a) =&gt; [a] -&gt; [a] -&gt; [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">&quot;Method 'intersect' is not implemented yet.&quot;</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 &#8212; :</td><td>a -&gt; [a] -&gt; [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">&quot;Method 'intersperse' is not implemented yet.&quot;</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 &#8212; :</td><td>(Eq a) =&gt; [a] -&gt; [a] -&gt; 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">&quot;Method 'is_prefix_of' is not implemented yet.&quot;</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 &#8212; :</td><td>(Eq a) =&gt; [a] -&gt; [a] -&gt; 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">&quot;Method 'is_suffix_of' is not implemented yet.&quot;</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 &#8212; :</td><td>(a -&gt; a) -&gt; a -&gt; [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">&quot;Method 'iterate' is not implemented yet.&quot;</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 &#8212; :</td><td>String -&gt; [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">&quot;Method 'lines' is not implemented yet.&quot;</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 &#8212; :</td><td>(Eq a) =&gt; a -&gt; [(a,b)] -&gt; 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">&quot;Method 'lookup' is not implemented yet.&quot;</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 &#8212; :</td><td>(a -&gt; b -&gt; (a,c)) -&gt; a -&gt; [b] -&gt; (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">&quot;Method 'map_accum_l' is not implemented yet.&quot;</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 &#8212; :</td><td>(a -&gt; b -&gt; (a,c)) -&gt; a -&gt; [b] -&gt; (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">&quot;Method 'map_accum_r' is not implemented yet.&quot;</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 &#8212; :</td><td>(Ord a) =&gt; [a] -&gt; 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">&quot;Method 'maximum' is not implemented yet.&quot;</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 &#8212; :</td><td>(Ord a) =&gt; [a] -&gt; 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">&quot;Method 'minimum' is not implemented yet.&quot;</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 &#8212; :</td><td>a -&gt; [a] -&gt; 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">&quot;Method 'not_elem' is not implemented yet.&quot;</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 &#8212; :</td><td>(Eq a) =&gt; [a] -&gt; [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">&quot;Method 'nub' is not implemented yet.&quot;</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 &#8212; :</td><td>[a] -&gt; 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 &#8212; :</td><td>[Bool] -&gt; 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 &#8212; :</td><td>(Num a) =&gt; [a] -&gt; 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">&quot;Method 'product' is not implemented yet.&quot;</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 &#8212; :</td><td>a -&gt; [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">&quot;Method 'repeat' is not implemented yet.&quot;</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 &#8212; :</td><td>Int -&gt; a -&gt; [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">&quot;Method 'replicate' is not implemented yet.&quot;</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, &amp;block)</span>
1797
+ </a>
1798
+ </div>
1799
+
1800
+ <div class="method-description">
1801
+ <table>
1802
+ <tr><td valign="top">scanl &#8212; :</td><td>(a -&gt; b -&gt; a) -&gt; a -&gt; [b] -&gt; [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">&amp;</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">&lt;&lt;</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">(&amp;block)</span>
1825
+ </a>
1826
+ </div>
1827
+
1828
+ <div class="method-description">
1829
+ <table>
1830
+ <tr><td valign="top">scanl1 &#8212; :</td><td>(a -&gt; a -&gt; a) -&gt; [a] -&gt; [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">&amp;</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">&amp;</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, &amp;block)</span>
1853
+ </a>
1854
+ </div>
1855
+
1856
+ <div class="method-description">
1857
+ <table>
1858
+ <tr><td valign="top">scanr &#8212; :</td><td>(a -&gt; b -&gt; b) -&gt; b -&gt; [a] -&gt; [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">&amp;</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">&lt;&lt;</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">(&amp;block)</span>
1881
+ </a>
1882
+ </div>
1883
+
1884
+ <div class="method-description">
1885
+ <table>
1886
+ <tr><td valign="top">scanr1 &#8212; :</td><td>(a -&gt; a -&gt; a) -&gt; [a] -&gt; [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">&amp;</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">&amp;</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">(&amp;block)</span>
1909
+ </a>
1910
+ </div>
1911
+
1912
+ <div class="method-description">
1913
+ <table>
1914
+ <tr><td valign="top">span &#8212; :</td><td>(a -&gt; Bool) -&gt; [a] -&gt; ([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">&amp;</span><span class="ruby-identifier">block</span>)
1924
+ 311: [<span class="ruby-identifier">take_while</span>(<span class="ruby-operator">&amp;</span><span class="ruby-identifier">block</span>), <span class="ruby-identifier">drop_while</span>(<span class="ruby-operator">&amp;</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 &#8212; :</td><td>Int -&gt; [a] -&gt; ([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 &#8212; :</td><td>(Num a) =&gt; [a] -&gt; 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">&quot;Method 'sum' is not implemented yet.&quot;</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 &#8212; :</td><td>[a] -&gt; [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 &#8212; :</td><td>[a] -&gt; [[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">&quot;Method 'tails' is not implemented yet.&quot;</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 &#8212; :</td><td>Int -&gt; [a] -&gt; [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 &#8212; :</td><td>(a -&gt; Bool) -&gt; [a] -&gt; [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">&lt;&lt;</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 &#8212; :</td><td>(b -&gt; Maybe (a, b)) -&gt; b -&gt; [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">&quot;Method 'unfoldr' is not implemented yet.&quot;</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 &#8212; :</td><td>(Eq a) =&gt; [a] -&gt; [a] -&gt; [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">&quot;Method 'union' is not implemented yet.&quot;</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 &#8212; :</td><td>[String] -&gt; 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">&quot;Method 'unlines' is not implemented yet.&quot;</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 &#8212; :</td><td>[String] -&gt; 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">&quot;Method 'unwords' is not implemented yet.&quot;</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 &#8212; :</td><td>[(a,b)] -&gt; ([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">&quot;Method 'unzip' is not implemented yet.&quot;</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">&quot;Method 'unzip3' is not implemented yet.&quot;</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">&quot;Method 'unzip4' is not implemented yet.&quot;</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 &#8212; :</td><td>String -&gt; [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">&quot;Method 'words' is not implemented yet.&quot;</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">&quot;Method 'zip3' is not implemented yet.&quot;</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">&quot;Method 'zip4' is not implemented yet.&quot;</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 &#8212; :</td><td>(a -&gt; b -&gt; c) -&gt; [a] -&gt; [b] -&gt; [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">&quot;Method 'zip_with' is not implemented yet.&quot;</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">&quot;Method 'zip_with3' is not implemented yet.&quot;</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">&quot;Method 'zip_with4' is not implemented yet.&quot;</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>