Method Function.splice_call()

Method splice_call

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


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.


Whatever the supplied function f returns.

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 */