SwiftでLet Over Lambda

SwiftのBlocksに関してググってみるたび、変数キャプチャの簡潔な例がぱっとみつからないので、備忘録として。

let letOverLambda: ()->Int = { var i = 0; return { i += 1; return i } }()

letOverLambda() -> 1
letOverLambda() -> 2
letOverLambda() -> 3