Advertisement
Guest User

Untitled

a guest
Nov 4th, 2015
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.96 KB | None | 0 0
  1. //316216779 דניאל ליובין dani9590@gmail.com  ירין עוזרי 206829145 yarin129@gmail.com
  2. program folding;
  3. type EvalFunc = function (x, y : Integer) : Integer;
  4.  
  5. function foldl(f : EvalFunc; init : Integer; arr : array of Integer) : integer;
  6. var i : Integer;
  7. begin
  8.     for i := low(arr) to high(arr) do
  9.     begin
  10.         init:=f(arr[i], init);
  11.     end;
  12.     foldl:=init;
  13. end;
  14.  
  15. function foldr(f : EvalFunc; init : Integer; arr : array of Integer) : integer;
  16. var i: Integer;
  17. begin
  18.     for i := high(arr) downto low(arr) do
  19.     begin
  20.         init:=f(arr[i], init);
  21.     end;
  22.     foldr:=init;
  23. end;
  24.  
  25. function sum (x, y : Integer) : Integer;
  26. begin
  27.         sum:=x+y;
  28. end;
  29. function max (x,y : Integer) : Integer;
  30. begin
  31.         if (x>y) then
  32.             max:=x
  33.         else
  34.             max:=y;
  35. end;
  36.  
  37. function arraySum(arr : array of Integer) : Integer;
  38. begin
  39.     arraySum:=foldl(@sum, 0, arr);
  40. end;
  41.  
  42. function arrayMax(arr : array of Integer) : Integer;
  43. begin
  44.     arrayMax:=foldr(@max, arr[0], arr);
  45. end;
  46.  
  47. begin
  48. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement