Skip to content
Snippets Groups Projects
Commit f321a85d authored by Johan Sundström's avatar Johan Sundström
Browse files

added Function.splice_call

Rev: lib/modules/Function.pmod:1.4
parent 14101226
No related branches found
No related tags found
No related merge requests found
#pike __REAL_VERSION__ #pike __REAL_VERSION__
constant defined = __builtin.function_defined; constant defined = __builtin.function_defined;
//! Calls the given function with the @tt{args@} array plus the optional
//! extra arguments as its arguments and returns the result.
//!
//! Most useful in conjunction with @ref{map@}, and particularly in combination
//! with @ref{sscanf@} with @tt{"...%{...%}..."@} scan strings (which indeed
//! was what it was invented for in the first place).
//!
//! @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)
//! })
//! @endexample
//!
//! @param args
//! the first arguments the function @tt{f@} expects
//! @param f
//! the function to apply the arguments on
//! @param extra
//! optional extra arguments to send to @tt{f@}
//! @returns
//! whatever the supplied function @tt{f@} returns
mixed splice_call(array args, function f, mixed|void ... extra)
{
return f(@args, @extra);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment