S.I/Lisp/

APPLY




=APPLY(INCREMENT, 0)
-> 1

=APPLY(SUM, 1, 2, 3)
-> 6
        



DEFINE(
    APPLY,
    LAMBDA(
        function,
        [argument1],
        [argument2],
        [argument3],
        [argument4],
        [argument5],
        [argument6],
        [argument7],
        [argument8],
        [argument9],
        [argument10],
        SWITCH(
            ARITY(
                argument1,
                argument2,
                argument3,
                argument4,
                argument5,
                argument6,
                argument7,
                argument8,
                argument9,
                argument10),
            0,
                function(),
            1,
                function(argument1),
            2,
                function(argument1, argument2),
            3,
                function(argument1, argument2, argument3),
            4,
                function(argument1, argument2, argument3, argument4),
            5,
                function(argument1, argument2, argument3, argument4, argument5),
            6,
                function(argument1, argument2, argument3, argument4, argument5, argument6),
            7,
                function(argument1, argument2, argument3, argument4, argument5, argument6, argument7),
            8,
                function(argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8),
            9,
                function(argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9),
            function(argument1, argument2, argument3, argument4, argument5, argument6, argument7, argument8, argument9, argument10))))
        



Help us optimize this function