Função Dobrável
Nome totalmente qualificado: Std.Arrays.Fold
function Fold<'State, 'T>(folder : (('State, 'T) -> 'State), state : 'State, array : 'T[]) : 'State
Resumo
Itera uma função f
por meio de uma matriz array
, retornando f(...f(f(initialState, array[0]), array[1]), ...)
.
Parâmetros de tipo
'Estado
O tipo de estados em que a função folder
opera, ou seja, aceita como seu primeiro argumento e retorna.
'T
O tipo de elementos array
.
Entrada
pasta
Uma função a ser dobrada sobre a matriz.
estado
O estado inicial da pasta.
array
Uma matriz de valores a serem dobrados.
Saída
O estado final retornado pela pasta depois de iterar em todos os elementos de array
.
Exemplo
let sum = Fold((x, y) -> x + y, 0, [1, 2, 3, 4, 5]); // `sum` is 15.