Cody

Problem 201. Mimic foldl in functional programming

Mimic the higher-order function foldl ( Wikipedia:Fold (higher-order function) ).

Arguments are a function with two arguments, start value, and a list. It takes the start value and the first item in the list and then applies the function to them, then feeds the function with this result and the second item in the list, and so on.

    foldl(f, start, [x1, x2, ..., xn]) == f( (...f(f(f(s, x1), x2), x3), ...) , xn)
    foldl(@plus, 0, 1:10) == ( ... (((0 + 1) + 2) + 3) + ... + 10) == 55

If the list is missing, it have to return the function handle which takes list. If both the start value and the list are missing, it have to return the function handle which takes two arguments, start value and list.

    sumplusfive = foldl(@plus, 5);
    => sumplusfive(1:10) == 60
    concat = foldl(@(x_, y_) [x_ y_]);
    => concat([1 2 3], [4 5 6]) == [1 2 3 4 5 6]

Solution Stats

45.26% Correct | 54.74% Incorrect
Last solution submitted on Apr 23, 2016

Problem Comments

Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!

Join the 15-year community celebration.

Play games and win prizes!

Learn more