Это перевод статьи- эпизода “Functions”, размещенной на сайте pointfree.co.
Код для этого фрагмента можно найти здесь.
Давайте определим инкрементную функцию incr, которая берет целое число Int, добавляет к нему единицу 1 и возвращает результат как целое число Int:
func incr (_ x:Int) -> Int {
return x + 1
}
При вызове мы передаем этой функции значение.
incr(3) // 4
Давайте определим функцию square, которая возводит в квадрат целое число Int:
func square(_ x:Int) -> Int {
return x * x
}
Мы можем вызвать эту функцию тем же самым способом:
square(3) // 9
Мы можем даже сделать вложенный вызов этих функций для того, чтобы сначала рассчитать приращение, а затем квадрат целого значения Int:
square(incr(3)) // 16
Это очень просто, но это не характерно для Swift. Самый высокий уровень, свободные функции (free functions), не используются для такого рода функций, в этом случае отдается предпочтение методам.