Cody

Solution 463657

Submitted on 28 Jun 2014 by Clemens Giegerich
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Pass
%% summation assert(isequal(foldl(@plus, 0, 1:100), 5050));

ans = 1 ans = 3 ans = 6 ans = 10 ans = 15 ans = 21 ans = 28 ans = 36 ans = 45 ans = 55 ans = 66 ans = 78 ans = 91 ans = 105 ans = 120 ans = 136 ans = 153 ans = 171 ans = 190 ans = 210 ans = 231 ans = 253 ans = 276 ans = 300 ans = 325 ans = 351 ans = 378 ans = 406 ans = 435 ans = 465 ans = 496 ans = 528 ans = 561 ans = 595 ans = 630 ans = 666 ans = 703 ans = 741 ans = 780 ans = 820 ans = 861 ans = 903 ans = 946 ans = 990 ans = 1035 ans = 1081 ans = 1128 ans = 1176 ans = 1225 ans = 1275 ans = 1326 ans = 1378 ans = 1431 ans = 1485 ans = 1540 ans = 1596 ans = 1653 ans = 1711 ans = 1770 ans = 1830 ans = 1891 ans = 1953 ans = 2016 ans = 2080 ans = 2145 ans = 2211 ans = 2278 ans = 2346 ans = 2415 ans = 2485 ans = 2556 ans = 2628 ans = 2701 ans = 2775 ans = 2850 ans = 2926 ans = 3003 ans = 3081 ans = 3160 ans = 3240 ans = 3321 ans = 3403 ans = 3486 ans = 3570 ans = 3655 ans = 3741 ans = 3828 ans = 3916 ans = 4005 ans = 4095 ans = 4186 ans = 4278 ans = 4371 ans = 4465 ans = 4560 ans = 4656 ans = 4753 ans = 4851 ans = 4950 ans = 5050

2   Pass
%% summation 2 r = rand(1, 100); y = foldl(@plus, 0, r); yc = sum(r); assert(abs(y - yc)/abs(y) < 1e-6);

ans = 0.1655 ans = 0.2834 ans = 0.7491 ans = 1.5064 ans = 2.4335 ans = 2.6036 ans = 2.6662 ans = 3.0283 ans = 3.4405 ans = 3.5040 ans = 4.4728 ans = 5.4106 ans = 5.4806 ans = 5.8113 ans = 6.4870 ans = 6.8513 ans = 6.9829 ans = 7.4110 ans = 8.1460 ans = 8.6741 ans = 8.9568 ans = 9.3415 ans = 9.5720 ans = 9.7343 ans = 10.5300 ans = 11.1506 ans = 12.0635 ans = 12.5916 ans = 13.3677 ans = 13.6386 ans = 14.5595 ans = 14.8566 ans = 15.6445 ans = 15.8995 ans = 16.8630 ans = 17.0005 ans = 17.5391 ans = 18.5158 ans = 19.3680 ans = 20.1164 ans = 20.4246 ans = 21.1896 ans = 21.5177 ans = 21.5458 ans = 21.9542 ans = 22.5374 ans = 22.6784 ans = 23.1013 ans = 23.5978 ans = 24.0970 ans = 24.3925 ans = 24.9646 ans = 24.9890 ans = 25.0611 ans = 25.5445 ans = 25.8126 ans = 26.0026 ans = 26.5864 ans = 27.2594 ans = 27.9235 ans = 28.8849 ans = 29.4263 ans = 29.7873 ans = 30.6064 ans = 30.8933 ans = 31.1635 ans = 31.9511 ans = 32.5620 ans = 33.4749 ans = 33.5732 ans = 34.4302 ans = 34.6625 ans = 35.1621 ans = 35.1625 ans = 35.2468 ans = 35.6214 ans = 36.1450 ans = 36.9112 ans = 37.2953 ans = 37.9682 ans = 38.8171 ans = 39.4336 ans = 39.5408 ans = 40.0548 ans = 40.9847 ans = 41.6576 ans = 42.5265 ans = 42.5550 ans = 42.7114 ans = 42.7536 ans = 43.7303 ans = 44.3918 ans = 45.1529 ans = 46.0867 ans = 46.7161 ans = 46.8055 ans = 47.0364 ans = 47.4223 ans = 48.2932 ans = 48.5453

3   Pass
%% factorial assert(isequal(foldl(@times, 1, 1:15), factorial(15)));

ans = 1 ans = 2 ans = 6 ans = 24 ans = 120 ans = 720 ans = 5040 ans = 40320 ans = 362880 ans = 3628800 ans = 39916800 ans = 479001600 ans = 6.2270e+09 ans = 8.7178e+10 ans = 1.3077e+12

4   Pass
%% find maximum r = rand(1, 1000); assert(isequal(foldl(@max, -Inf, r), max(r)));

ans = 0.1296 ans = 0.1296 ans = 0.4444 ans = 0.4444 ans = 0.4444 ans = 0.6021 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9712 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9892 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9899 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9962 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans = 0.9986 ans...

5   Pass
%% assert(isequal(foldl(@(x_, y_) 2*x_ + y_, 4, 1:3), 43));

ans = 9 ans = 20 ans = 43

6   Pass
%% handle 1 sumplusfive = foldl(@plus, 5); assert(isequal(sumplusfive(1:100), 5055));

ans = @(l)foldl(f,ans,l) ans = 6 ans = 8 ans = 11 ans = 15 ans = 20 ans = 26 ans = 33 ans = 41 ans = 50 ans = 60 ans = 71 ans = 83 ans = 96 ans = 110 ans = 125 ans = 141 ans = 158 ans = 176 ans = 195 ans = 215 ans = 236 ans = 258 ans = 281 ans = 305 ans = 330 ans = 356 ans = 383 ans = 411 ans = 440 ans = 470 ans = 501 ans = 533 ans = 566 ans = 600 ans = 635 ans = 671 ans = 708 ans = 746 ans = 785 ans = 825 ans = 866 ans = 908 ans = 951 ans = 995 ans = 1040 ans = 1086 ans = 1133 ans = 1181 ans = 1230 ans = 1280 ans = 1331 ans = 1383 ans = 1436 ans = 1490 ans = 1545 ans = 1601 ans = 1658 ans = 1716 ans = 1775 ans = 1835 ans = 1896 ans = 1958 ans = 2021 ans = 2085 ans = 2150 ans = 2216 ans = 2283 ans = 2351 ans = 2420 ans = 2490 ans = 2561 ans = 2633 ans = 2706 ans = 2780 ans = 2855 ans = 2931 ans = 3008 ans = 3086 ans = 3165 ans = 3245 ans = 3326 ans = 3408 ans = 3491 ans = 3575 ans = 3660 ans = 3746 ans = 3833 ans = 3921 ans = 4010 ans = 4100 ans = 4191 ans = 4283 ans = 4376 ans = 4470 ans = 4565 ans = 4661 ans = 4758 ans = 4856 ans = 4955 ans = 5055

7   Pass
%% handle 2 concat = foldl(@(x_, y_) [x_ y_]); r1 = rand(1, 10); r2 = rand(1, 10); assert(isequal(concat(r1, r2), [r1 r2]));

ans = @(x,l)foldl(f,x,l) ans = Columns 1 through 10 0.6742 0.6440 0.3683 0.9466 0.1763 0.8473 0.9289 0.6065 0.5415 0.6472 Column 11 0.0500 ans = Columns 1 through 10 0.6742 0.6440 0.3683 0.9466 0.1763 0.8473 0.9289 0.6065 0.5415 0.6472 Columns 11 through 12 0.0500 0.6475 ans = Columns 1 through 10 0.6742 0.6440 0.3683 0.9466 0.1763 0.8473 0.9289 0.6065 0.5415 0.6472 Columns 11 through 13 0.0500 0.6475 0.7613 ans = Columns 1 through 10 0.6742 0.6440 0.3683 0.9466 0.1763 0.8473 0.9289 0.6065 0.5415 0.6472 Columns 11 through 14 0.0500 0.6475 0.7613 0.0941 ans = Columns 1 through 10 0.6742 0.6440 0.3683 0.9466 0.1763 0.8473 0.9289 0.6065 0.5415 0.6472 Columns 11 through 15 0.0500 0.6475 0.7613 0.0941 0.2916 ans = Columns 1 through 10 0.6742 0.6440 0.3683 0.9466 0.1763 0.8473 0.9289 0.6065 0.5415 0.6472 Columns 11 through 16 0.0500 0.6475 0.7613 0.0941 0.2916 0.5959 ans = Columns 1 through 10 0.6742 0.6440 0.3683 0.9466 0.1763 0.8473 0.9289 0.6065 0.5415 0.6472 Columns 11 through 17 0.0500 0.6475 0.7613 0.0941 0.2916 0.5959 0.2164 ans = Columns 1 through 10 0.6742 0.6440 0.3683 0.9466 0.1763 0.8473 0.9289 0.6065 0.5415 0.6472 Columns 11 through 18 0.0500 0.6475 0.7613 0.0941 0.2916 0.5959 0.2164 0.3123 ans = Columns 1 through 10 0.6742 0.6440 0.3683 0.9466 0.1763 0.8473 0.9289 0.6065 0.5415 0.6472 Columns 11 through 19 0.0500 0.6475 0.7613 0.0941 0.2916 0.5959 0.2164 0.3123 0.6802 ans = Columns 1 through 10 0.6742 0.6440 0.3683 0.9466 0.1763 0.8473 0.9289 0.6065 0.5415 0.6472 Columns 11 through 20 0.0500 0.6475 0.7613 0.0941 0.2916 0.5959 0.2164 0.3123 0.6802 0.3654

Suggested Problems

More from this Author1