Provided by: kaya_0.4.4-6ubuntu3_amd64 

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)
Kaya July 2013 Array.fold(3kaya)