samer@4: function X=foldl(fn,e,args) samer@4: % foldl - Fold fom the left combinator samer@4: % samer@4: % This function applies an associative operator to cell array, samer@4: % starting from the left using the given starting element. samer@4: % eg fold(@plus,0,{1,2,3,4}) = ((((0+1)+2)+3)+4). samer@4: % samer@4: % foldl :: samer@4: % (X,Y->X) ~'associative binary operator', samer@4: % X ~'initial element', samer@4: % {[N]->Y} ~'list (cell array) of arguments (at least 2 elements)' samer@4: % -> X. samer@4: X=e; for i=1:length(args), X=fn(X,args{i}); end