pike.git / lib / modules / Array.pmod

version» Context lines:

pike.git/lib/modules/Array.pmod:94:    return ret[..d-1];    }   }   #endif      mixed reduce(function fun, array arr, mixed|void zero)   {    if(sizeof(arr))    zero = arr[0];    for(int i=1; i<sizeof(arr); i++) -  zero = fun(zero, arr[i]); +  zero = ([function(mixed,mixed:mixed)]fun)(zero, arr[i]);    return zero;   }      mixed rreduce(function fun, array arr, mixed|void zero)   {    if(sizeof(arr))    zero = arr[-1];    for(int i=sizeof(arr)-2; i>=0; --i) -  zero = fun(arr[i], zero); +  zero = ([function(mixed,mixed:mixed)]fun)(arr[i], zero);    return zero;   }      array shuffle(array arr)   {    int i = sizeof(arr);       while(i) {    int j = random(i--);    if (j != i) {
pike.git/lib/modules/Array.pmod:147:    return a;   }      int search_array(array arr, mixed fun, mixed ... args)   {    int e;       if(stringp(fun))    {    for(e=0;e<sizeof(arr);e++) -  if(([array(object)]arr)[e][fun](@args)) +  if(([function(mixed...:mixed)]([array(object)]arr)[e][fun])(@args))    return e;    return -1;    }    else if(functionp(fun))    {    for(e=0;e<sizeof(arr);e++) -  if(([function]fun)(arr[e],@args)) +  if(([function(mixed,mixed...:mixed)]fun)(arr[e],@args))    return e;    return -1;    }    else if(intp(fun))    {    for(e=0;e<sizeof(arr);e++) -  if(([array(function)]arr)[e](@args)) +  if(([array(function(mixed...:mixed))]arr)[e](@args))    return e;    return -1;    }    else    {    error("Bad argument 2 to filter().\n");    }   }      array sum_arrays(function foo, array(mixed) ... args)   {    array ret;    int e,d;    ret=allocate(sizeof(args[0]));    for(e=0;e<sizeof(args[0]);e++) -  ret[e]=foo(@ column(args, e)); +  ret[e]=([function(mixed...:mixed)]foo)(@ column(args, e));    return ret;   }      array sort_array(array foo,function|void cmp, mixed ... args)   {    array bar,tmp;    int len,start;    int length;    int foop, fooend, barp, barend;   
pike.git/lib/modules/Array.pmod:220:    while(start+len < length)    {    foop=start;    barp=start+len;    fooend=barp;    barend=barp+len;    if(barend > length) barend=length;       while(1)    { -  if(cmp(foo[foop],foo[barp],@args) <= 0) +  if(([function(mixed,mixed,mixed...:int)]cmp)(foo[foop],foo[barp],@args) +  <= 0)    {    bar[start++]=foo[foop++];    if(foop == fooend)    {    while(barp < barend) bar[start++]=foo[barp++];    break;    }    }else{    bar[start++]=foo[barp++];    if(barp == barend)
pike.git/lib/modules/Array.pmod:255:    return foo;   }      array columns(array x, array ind)   {    array ret=allocate(sizeof(ind));    for(int e=0;e<sizeof(ind);e++) ret[e]=column(x,ind[e]);    return ret;   }    - array transpose_old(array x) + array transpose_old(array(array|string) x)   {    if (!sizeof(x)) return x; -  array ret=allocate(sizeof(x[0])); -  for(int e=0;e<sizeof(x[0]);e++) ret[e]=column(x,e); +  array ret=allocate(sizeof([array|string]x[0])); +  for(int e=0;e<sizeof([array|string]x[0]);e++) ret[e]=column(x,e);    return ret;   }      // diff3, complement to diff      array(array(array)) diff3 (array a, array b, array c)   {    // This does not necessarily produce the optimal sequence between    // all three arrays. A diff_longest_sequence() that takes any number    // of arrays would be nice.
pike.git/lib/modules/Array.pmod:543:    sscanf(b,"%[^ \t]%*[ \t](%*[^)])%*[ \t]%s",b,b0);    if (a>b) return 1;    if (a<b) return 0;    if (a0==b0) return 0;    return lyskom_sort_func(a0,b0);   }      array flatten(array a)   {    array ret=({}); -  foreach(a, a) ret+=arrayp(a)?flatten(a):({a}); +  foreach(a, mixed b) ret+=arrayp(b)?flatten([array]b):({b});    return ret;   }