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