As the Int... is considered as an [Int] in the function body so compiler will not allow to pass [Int] in place of Int.... You better calculate the sum as below,
func makeSomething(_ numbers : Int..., workFunction : (Int...) -> Int) { let sum = numbers.map({ workFunction($0)}).reduce(0, +) print(sum) } Or introduce another method that accepts array of Int and returns sum. Something as below,
func anotherSum(_ numbers : [Int]) -> Int { return numbers.reduce(0, +) } func makeSomething(_ numbers : Int..., workFunction : ([Int]) -> Int) { print(workFunction(numbers)) }