Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //316216779 דניאל ליובין dani9590@gmail.com ירין עוזרי 206829145 yarin129@gmail.com
- program folding;
- type EvalFunc = function (x, y : Integer) : Integer;
- function foldl(f : EvalFunc; init : Integer; arr : array of Integer) : integer;
- var i : Integer;
- begin
- for i := low(arr) to high(arr) do
- begin
- init:=f(arr[i], init);
- end;
- foldl:=init;
- end;
- function foldr(f : EvalFunc; init : Integer; arr : array of Integer) : integer;
- var i: Integer;
- begin
- for i := high(arr) downto low(arr) do
- begin
- init:=f(arr[i], init);
- end;
- foldr:=init;
- end;
- function sum (x, y : Integer) : Integer;
- begin
- sum:=x+y;
- end;
- function max (x,y : Integer) : Integer;
- begin
- if (x>y) then
- max:=x
- else
- max:=y;
- end;
- function arraySum(arr : array of Integer) : Integer;
- begin
- arraySum:=foldl(@sum, 0, arr);
- end;
- function arrayMax(arr : array of Integer) : Integer;
- begin
- arrayMax:=foldr(@max, arr[0], arr);
- end;
- begin
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement