Pike v8.0 release 1738

Method Function.splice_call()


Method splice_call

mixed splice_call(array args, function(:void) f, mixed|void ... extra)

Description

Calls the given function with the args array plus the optional extra arguments as its arguments and returns the result.

Most useful in conjunction with map, and particularly in combination with sscanf with "...%{...%}..." scan strings (which indeed was what it was invented for in the first place).

Parameter args

The first arguments the function f expects.

Parameter f

The function to apply the arguments on.

Parameter extra

Optional extra arguments to send to f.

Returns

Whatever the supplied function f returns.

Example
class Product(string name, string version)
  {
    string _sprintf()
    {
      return sprintf("Product(%s/%s)", name, version);
    }
  }
  map(({ ({ "pike",   "7.1.11" }),
         ({ "whitefish", "0.1" }) }),
      Function.splice_call, Product);
  ({ /* 2 elements */
	 Product(pike/7.1.11),
	 Product(whitefish/0.1)
  })