|
@@ -33,9 +33,6 @@ class Lambda {
|
|
Creates an [Array] from an [Iterable]
|
|
Creates an [Array] from an [Iterable]
|
|
**/
|
|
**/
|
|
public static function array<A>( it : Iterable<A> ) : Array<A> {
|
|
public static function array<A>( it : Iterable<A> ) : Array<A> {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
var a = new Array<A>();
|
|
var a = new Array<A>();
|
|
for(i in it)
|
|
for(i in it)
|
|
a.push(i);
|
|
a.push(i);
|
|
@@ -46,9 +43,6 @@ class Lambda {
|
|
Creates a [List] from an [Iterable]
|
|
Creates a [List] from an [Iterable]
|
|
**/
|
|
**/
|
|
public static function list<A>( it : Iterable<A> ) : List<A> {
|
|
public static function list<A>( it : Iterable<A> ) : List<A> {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
var l = new List<A>();
|
|
var l = new List<A>();
|
|
for(i in it)
|
|
for(i in it)
|
|
l.add(i);
|
|
l.add(i);
|
|
@@ -60,9 +54,6 @@ class Lambda {
|
|
elements of the iterator 'it'.
|
|
elements of the iterator 'it'.
|
|
**/
|
|
**/
|
|
public static function map<A,B>( it : Iterable<A>, f : A -> B ) : List<B> {
|
|
public static function map<A,B>( it : Iterable<A>, f : A -> B ) : List<B> {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
var l = new List<B>();
|
|
var l = new List<B>();
|
|
for( x in it )
|
|
for( x in it )
|
|
l.add(f(x));
|
|
l.add(f(x));
|
|
@@ -73,9 +64,6 @@ class Lambda {
|
|
Similar to [map], but also pass an index for each item iterated.
|
|
Similar to [map], but also pass an index for each item iterated.
|
|
**/
|
|
**/
|
|
public static function mapi<A,B>( it : Iterable<A>, f : Int -> A -> B ) : List<B> {
|
|
public static function mapi<A,B>( it : Iterable<A>, f : Int -> A -> B ) : List<B> {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
var l = new List<B>();
|
|
var l = new List<B>();
|
|
var i = 0;
|
|
var i = 0;
|
|
for( x in it )
|
|
for( x in it )
|
|
@@ -91,9 +79,6 @@ class Lambda {
|
|
compare and returns a boolean value.
|
|
compare and returns a boolean value.
|
|
**/
|
|
**/
|
|
public static function has<A>( it : Iterable<A>, elt : A, ?cmp : A -> A -> Bool ) : Bool {
|
|
public static function has<A>( it : Iterable<A>, elt : A, ?cmp : A -> A -> Bool ) : Bool {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
if( cmp == null ) {
|
|
if( cmp == null ) {
|
|
for( x in it )
|
|
for( x in it )
|
|
if( x == elt )
|
|
if( x == elt )
|
|
@@ -110,9 +95,6 @@ class Lambda {
|
|
Tells if at least one element of the iterable is found by using the specific function.
|
|
Tells if at least one element of the iterable is found by using the specific function.
|
|
**/
|
|
**/
|
|
public static function exists<A>( it : Iterable<A>, f : A -> Bool ) {
|
|
public static function exists<A>( it : Iterable<A>, f : A -> Bool ) {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
for( x in it )
|
|
for( x in it )
|
|
if( f(x) )
|
|
if( f(x) )
|
|
return true;
|
|
return true;
|
|
@@ -123,9 +105,6 @@ class Lambda {
|
|
Tells if all elements of the iterable have the specified property defined by [f].
|
|
Tells if all elements of the iterable have the specified property defined by [f].
|
|
**/
|
|
**/
|
|
public static function foreach<A>( it : Iterable<A>, f : A -> Bool ) {
|
|
public static function foreach<A>( it : Iterable<A>, f : A -> Bool ) {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
for( x in it )
|
|
for( x in it )
|
|
if( !f(x) )
|
|
if( !f(x) )
|
|
return false;
|
|
return false;
|
|
@@ -136,9 +115,6 @@ class Lambda {
|
|
Call the function 'f' on all elements of the [Iterable] 'it'.
|
|
Call the function 'f' on all elements of the [Iterable] 'it'.
|
|
**/
|
|
**/
|
|
public static function iter<A>( it : Iterable<A>, f : A -> Void ) {
|
|
public static function iter<A>( it : Iterable<A>, f : A -> Void ) {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
for( x in it )
|
|
for( x in it )
|
|
f(x);
|
|
f(x);
|
|
}
|
|
}
|
|
@@ -147,9 +123,6 @@ class Lambda {
|
|
Return the list of elements matching the function 'f'
|
|
Return the list of elements matching the function 'f'
|
|
**/
|
|
**/
|
|
public static function filter<A>( it : Iterable<A>, f : A -> Bool ) {
|
|
public static function filter<A>( it : Iterable<A>, f : A -> Bool ) {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
var l = new List<A>();
|
|
var l = new List<A>();
|
|
for( x in it )
|
|
for( x in it )
|
|
if( f(x) )
|
|
if( f(x) )
|
|
@@ -161,9 +134,6 @@ class Lambda {
|
|
Functional 'fold' using an [Iterable]
|
|
Functional 'fold' using an [Iterable]
|
|
**/
|
|
**/
|
|
public static function fold<A,B>( it : Iterable<A>, f : A -> B -> B, first : B ) : B {
|
|
public static function fold<A,B>( it : Iterable<A>, f : A -> B -> B, first : B ) : B {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
for( x in it )
|
|
for( x in it )
|
|
first = f(x,first);
|
|
first = f(x,first);
|
|
return first;
|
|
return first;
|
|
@@ -173,9 +143,6 @@ class Lambda {
|
|
Count the number of elements in an [Iterable]
|
|
Count the number of elements in an [Iterable]
|
|
**/
|
|
**/
|
|
public static function count<A>( it : Iterable<A> ) {
|
|
public static function count<A>( it : Iterable<A> ) {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
var n = 0;
|
|
var n = 0;
|
|
for( _ in it )
|
|
for( _ in it )
|
|
++n;
|
|
++n;
|
|
@@ -186,9 +153,6 @@ class Lambda {
|
|
Tells if an iterable does not contain any element.
|
|
Tells if an iterable does not contain any element.
|
|
**/
|
|
**/
|
|
public static function empty( it : Iterable<Dynamic> ) : Bool {
|
|
public static function empty( it : Iterable<Dynamic> ) : Bool {
|
|
-#if php
|
|
|
|
- if (it == null) throw "null iterable";
|
|
|
|
-#end
|
|
|
|
return !it.iterator().hasNext();
|
|
return !it.iterator().hasNext();
|
|
}
|
|
}
|
|
|
|
|