List.scanBack<'T,'State> 함수(F#)
업데이트: 2010년 8월
List.foldBack과 비슷하지만 중간 결과 및 최종 결과를 모두 반환합니다.
네임스페이스/모듈 경로: Microsoft.FSharp.Collections.List
어셈블리: FSharp.Core(FSharp.Core.dll)
// Signature:
List.scanBack : ('T -> 'State -> 'State) -> 'T list -> 'State -> 'State list
// Usage:
List.scanBack folder list state
매개 변수
folder
형식: 'T -> 'State -> 'State지정된 입력 요소의 상태를 업데이트하는 함수입니다.
list
형식: 'T list입력 목록입니다.
state
형식: 'State초기 상태입니다.
반환 값
상태 목록입니다.
설명
컴파일된 어셈블리에서 이 함수의 이름은 ScanBack입니다. F# 이외의 언어에서 함수에 액세스하거나 리플렉션을 통해 함수에 액세스하는 경우 이 이름을 사용합니다.
예제
다음 코드 예제에서는 List.scanBack을 사용하는 방법을 보여 주고 그 행동을 List.scan과 대조합니다.
// A list of functions that transform
// integers. (int -> int)
let ops1 =
[ (fun x -> x + 1), "add 1"
(fun x -> x + 2), "add 2"
(fun x -> x - 5), "subtract 5" ]
let ops2 =
[ (fun x -> x + 1), "add 1"
(fun x -> x * 5), "multiply by 5"
(fun x -> x * x), "square" ]
// Compare scan and scanBack, which apply the
// operations in the opposite order.
let compareOpOrder ops x0 =
let ops, opNames = List.unzip ops
let xs1 = List.scan (fun x op -> op x) x0 ops
let xs2 = List.scanBack (fun op x -> op x) ops x0
printfn "Operations:"
opNames |> List.iter (fun opName -> printf "%s " opName)
printfn ""
// Print the intermediate results.
let xs = List.zip xs1 (List.rev xs2)
printfn "List.scan List.scanBack"
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
참고 항목
참조
Microsoft.FSharp.Collections 네임스페이스(F#)
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2010년 8월 |
코드 예제를 추가했습니다. |
향상된 기능 관련 정보 |