다음을 통해 공유


Array.scanBack<'T,'State> 함수(F#)

Array.foldBack과 비슷하지만 중간 결과 및 최종 결과를 모두 반환합니다.

네임스페이스/모듈 경로: Microsoft.FSharp.Collections.Array

어셈블리: FSharp.Core(FSharp.Core.dll)

// Signature:
Array.scanBack : ('T -> 'State -> 'State) -> 'T [] -> 'State -> 'State []

// Usage:
Array.scanBack folder array state

매개 변수

  • folder
    형식: 'T -> 'State -> 'State

    지정된 입력 요소의 상태를 업데이트하는 함수입니다.

  • array
    형식: 'T []

    입력 배열입니다.

  • state
    형식: 'State

    초기 상태입니다.

반환 값

상태 값의 배열입니다.

설명

컴파일된 어셈블리에서 이 함수의 이름은 ScanBack입니다. F# 이외의 언어에서 함수에 액세스하거나 리플렉션을 통해 함수에 액세스하는 경우 이 이름을 사용합니다.

예제

다음 코드는 Array.scanArray.scanBack의 동작을 대조합니다.

// An array of functions that transform 
// integers. (int -> int)
let ops1 =
 [| fun x -> x + 1
    fun x -> x + 2
    fun x -> x - 5 |]

let ops2 =
 [| fun x -> x + 1
    fun x -> x * 5
    fun x -> x * x |]

// Compare scan and scanBack, which apply the
// operations in the opposite order.
let compareOpOrder ops x0 =
    let xs1 = Array.scan (fun x op -> op x) x0 ops
    let xs2 = Array.scanBack (fun op x -> op x) ops x0

    // Print the intermediate results
    let xs = Array.zip xs1 (Array.rev xs2)
    for (x1, x2) in xs do
        printfn "%10d %10d" x1 x2
    printfn ""

compareOpOrder ops1 10
compareOpOrder ops2 10

Output

  

플랫폼

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

버전 정보

F# 런타임

지원되는 버전: 2.0, 4.0

Silverlight

지원되는 버전: 3

참고 항목

참조

Collections.Array 모듈(F#)

Microsoft.FSharp.Collections 네임스페이스(F#)