Provided by: kaya_0.4.4-6ubuntu3_amd64 bug

NAME

       Array::fold - Fold an array.

SYNOPSIS

       b fold( b(a, b) f, [a] xs, b acc )

ARGUMENTS

       f The function to use

       xs The array

       acc The initial value for folding.

DESCRIPTION

       Applies  a  function  across  an  array.  For example, given a function sum which adds two
       integers:

    total = fold(sum,[1,2,3,4,5],0);
    putStrLn(String(total));

       This prints the sum of the values in the array [1,2,3,4,5]
        The following example uses fold to calculate the final direction.

    data Direction = North | East | South | West;
    data Turn = Left | Right;
    Direction doTurn(Turn turn, Direction current) {
        case turn of {
            Left -> case current of {
                North -> new = West;
                | West -> new = South;
                | South -> new = East;
                | East -> new = North;
            }
            | Right -> case current of {
                North -> new = East;
                | West -> new = North;
                | South -> new = West;
                | East -> new = South;
            }
        }
        return new;
    }

    Void main() {
        turns = [Left,Left,Left,Right,Right,Left,Right,Left,Left];
        original = West;
        final = fold(doTurn,turns,original);
        // final = North
    }

AUTHORS

       Kaya standard library by Edwin Brady, Chris Morris  and  others  (kaya@kayalang.org).  For
       further information see http://kayalang.org/

LICENSE

       The Kaya standard library is free software; you can redistribute it and/or modify it under
       the terms of the GNU Lesser General Public License (version 2.1 or any later  version)  as
       published by the Free Software Foundation.

RELATED

       Array.map (3kaya)