技術はメシのタネ

底辺プログラマで技術の向上を目指しているけれどやりたい事が無くて困っている

Swiftのクロージャが説明からして難しすぎる件について

The Swift Programming Languageや他の解説サイトでクロージャの説明を読んでみたのだが、文法からしてわからん。
試行錯誤しつつ実際に使って見ると、引数付きの場合のstrnums -> [Int] inがちょっと特殊だった。
てか例文をなんでもっと簡潔に書いてくれないんだろう。

func test() {

    // これがクロージャ
    let moge: ([String]) -> ([Int]) = {
        strnums -> [Int] in
        var nums: [Int] = []
        for str: String in strnums {
            nums.append(Int(str)!)
        }
        return nums
    }

    // クロージャを使ってみる
    let bar = moge(["5", "4", "3"])

    // 結果を確認
    for number: Int in bar {
        print("\(number)")    // => 5, 4, 3
    }
}

むしろ関数がクロージャの1種って言われてもなあ。

Swiftの他の機能もそうだけど、iOSアプリを作る中でむしろそれをどう使うのかがいまいちわからん。