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
Problem Comments
Solution Comments
Show commentsProblem Recent Solvers34
Suggested Problems
-
Project Euler: Problem 2, Sum of even Fibonacci
2924 Solvers
-
Project Euler: Problem 8, Find largest product in a large string of numbers
1333 Solvers
-
Back to basics 3 - Temp Directory
387 Solvers
-
The Answer to Life, the Universe, and Everything
588 Solvers
-
Given a matrix, swap the 2nd & 3rd columns
1288 Solvers
More from this Author1
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!