Fungsi lipatan

Peringatan

Dokumentasi ini mengacu pada QDK Klasik, yang telah digantikan oleh QDK Modern.

Silakan lihat https://aka.ms/qdk.api dokumentasi API untuk QDK Modern.

Namespace: Microsoft.Quantum.Arrays

Paket: Microsoft.Quantum.Standard

Melakukan iterasi fungsi f melalui array array, mengembalikan f(...f(f(initialState, array[0]), array[1]), ...).

function Fold<'State, 'T> (folder : (('State, 'T) -> 'State), state : 'State, array : 'T[]) : 'State

Input

folder : ('State,'T) -> 'State

Fungsi yang akan dilipat di atas array.

state : 'State

Status awal folder.

array : 'T[]

Array nilai yang akan dilipat.

Output : 'Status

Status akhir yang dikembalikan oleh folder setelah melakukan iterasi di semua elemen array.

Jenis parameter

'Status

Jenis status yang folder dioperasikan fungsi, yaitu, menerima sebagai argumen pertama dan kembali.

'T

Jenis array elemen.

Contoh

function Plus(a : Double, b : Double) {
    return a + b;
}
function Sum(xs : Double[]) {
    return Fold(Plus, 0.0, xs);
}