# 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) })