Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Введение в функциональное программирование
Search
juliaPetryshena
January 24, 2015
Programming
280
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Введение в функциональное программирование
Введение в функциональное программирование с примерами на языке Swift
juliaPetryshena
January 24, 2015
Other Decks in Programming
See All in Programming
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
380
Kotlinの15年とServer-Side Kotlin
n_takehata
1
150
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
220
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
720
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.5k
ジョジョの世界をXRで再現する
mofurune
0
170
The Rails Doctrine Decade
koic
2
600
APNsからLive Activityを開始する話
yumnumm
0
170
外から家のPCの電源入れたい!をPHPで解決する
kawashimo0
1
140
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
350
Jetpack Compose Mechanisms
skydoves
3
820
Featured
See All Featured
From π to Pie charts
rasagy
1
400
Measuring & Analyzing Core Web Vitals
bluesmoon
9
1k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
My Coaching Mixtape
mlcsv
0
360
Believing is Seeing
oripsolob
1
250
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
360
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.4k
Raft: Consensus for Rubyists
vanstee
142
7.8k
Transcript
Functional Programming in Swift
About me
VS
Swift — мультипарадигменный язык программирования Wikipedia
Вы можете даже писать функциональный код на Objective-C.
Proof FunctionalKit https://github.com/mogeneration/functionalkit
В парадигме функционального программирования краеугольный камень, — это функция.
Фу ́нкция в программировании — поименованный фрагмент программного кода (подпрограмма),
к которому можно обратиться из другого места программы.
Функция(математическое определение)— это правило, по которому каждому элементу одного множества
(называемого областью определения) ставится в соответствие некоторый элемент другого множества (называемого областью значений).
Функция не может изменить вызывающее её окружение и запомнить результаты
своей работы, а только предоставляет результат вычисления функции.
None
Constants and variables Предпочитайте let var и нет смысла называть
переменные … переменными.
Higher order functions
Возвести в квадрат элементы массива Разделить на 2 каждый элемент
массива
Вынесем повторяющийся код в отдельную функцию
Функция все еще не универсальна, так как работает только с
типом Int
Generics
Вот так бы она выглядела для Objective-C
None
Мы с вами реализовали упрощенный вариант стандартной функции map
Filter
Reduce
Filter Map Reduce
Чтение из файла
None
Optinal = Maybe M-world ее задача инкапсуляция функций с побочным
эффектом от чистых функций, а точнее их выполнений от вычислений http://adit.io/posts/2013-04-17- functors,_applicatives,_and_monads_in_pictures.html
http://adit.io/posts/2013-04-17- functors,_applicatives,_and_monads_in_pictures.html
http://adit.io/posts/2013-04-17- functors,_applicatives,_and_monads_in_pictures.html
http://adit.io/posts/2013-04-17- functors,_applicatives,_and_monads_in_pictures.html
Определим Enum Result • Success - вернет содержимое файла •
Failure - вернет ошибку
None
Reading File
Optional chaining Нам дан заказ как узнать телефон покупателя?
None
Валидация TextField
None
None
None
None
Каррирование Любую функцию n аргументов можно представить как функцию одного
аргумента, возвращающую другую функцию n–1 аргументов. И это называется каррированием. Эта идея, в частности, позволяет передавать функции только часть аргументов.
None
None
None
Преимущество функционального подхода • Unit тестирование • Отладка • Многопоточность
Реальные проекты 1 )ФП для бизнес логики и при работе
с данными. Пресловутый JSON parser 2) Wrappers for Existing API. 3)ФП для UI? 4) Functional View Controller https://github.com/ chriseidhof/functional-view-controllers/
None
None