Compartilhar via


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.