Swift 3
let num = 1234
// Int -> [String]
let numList = String(num).characters.flatMap { String($0) }
print(numList)
// ["1", "2", "3", "4"]
let opeList = ["+", "-", "*"]
let zipped = zip(numList, opeList + [""]) // 要素数を合わせる
print(zipped)
// Zip2Sequence<Array<String>, Array<String>>(_sequence1: ["1", "2", "3", "4"], _sequence2: ["+", "-", "*", ""])
let equation = zipped.reduce("") { $0 + $1.0 + $1.1 }
print(equation)
// "1+2-3*4"
or
let num = 1234
// Int -> [String]
let numList = String(num).characters.flatMap { String($0) }
print(numList)
// ["1", "2", "3", "4"]
let opeList = ["+", "-", "*"]
let zipped = zip(numList, opeList + [""])
print(zipped)
// Zip2Sequence<Array<String>, Array<String>>(_sequence1: ["1", "2", "3", "4"], _sequence2: ["+", "-", "*", ""])
let concatenated = zipped.map { $0.0 + $0.1 }
print(concatenated)
// ["1+", "2-", "3*", "4"]
let equation = concatenated.joined()
print(equation)
// "1+2-3*4"
Swift 2
let num = 1234
// Int -> [String]
let numList = String(num).characters.flatMap { String($0) }
print(numList)
// ["1", "2", "3", "4"]
let opeList = ["+", "-", "*"]
let zipped = zip(numList, opeList + [""]) // 要素数を合わせる
print(zipped)
// Zip2Sequence<Array<String>, Array<String>>(_sequences: (["1", "2", "3", "4"], ["+", "-", "*", ""]))
let equation = zipped.reduce("") { $0 + $1.0 + $1.1 }
print(equation)
// "1+2-3*4"
or
let num = 1234
// Int -> [String]
let numList = String(num).characters.flatMap { String($0) }
print(numList)
// ["1", "2", "3", "4"]
let opeList = ["+", "-", "*"]
let zipped = zip(numList, opeList + [""])
print(zipped)
// Zip2Sequence<Array<String>, Array<String>>(_sequences: (["1", "2", "3", "4"], ["+", "-", "*", ""]))
let concatenated = zipped.map { $0.0 + $0.1 }
print(concatenated)
// ["1+", "2-", "3*", "4"]
let equation = "".join(concatenated)
print(equation)
// "1+2-3*4"