Sometimes I want to create a quick way to add a number of items with a name; such as creating 10 decks with an offset number.
Usually this can be done like this;
// usual way;
var decks : [Deck] = [Deck]()
for idx in 1...10 {
decks.append( Deck.init(name: "#\(idx)") )
}
But I find this functional way a bit better
// functional way
let decks = (1...10).enumerated().map({ (offset, element) in
return (Deck.init(name: "Deck.\(offset)"))
})
Although my usual way is memorable, I like the functional one as its a bit cleaner and uses less code.