Title Page
Swift Functional Programming
Second Edition
Build clean, smart, and reliable applications with Swift Functional Programming
Dr. Fatih Nayebi
BIRMINGHAM - MUMBAI
Copyright
Swift Functional Programming
Second Edition
Copyright 2017 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: June 2016
Second edition: April 2017
Production reference: 1210417
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-78728-450-0
www.packtpub.com
Credits
Author Dr. Fatih Nayebi | Copy Editor Safis Editing |
Reviewer Giordano Scalzo | Project Coordinator Shweta H Birwatkar |
Commissioning Editor Ashwin Nair | Proofreader Safis Editing |
Acquisition Editor Dibyajyoti Ghosh | Indexer Pratik Shirodkar |
Content Development Editor Amrita Noronha | Graphics Tania Dutta |
Technical Editor Nilesh Sawakhande | Production Coordinator Aparna Bhagat |
About the Author
Dr. Fatih Nayebi has more than 15 years of industry experience in software engineering and architecture in various fields. He has developed numerous applications with Visual Basic, C++, C#, Java, MATLAB, Python, Objective-C, and Swift. He has been designing and developing enterprise and consumer iOS applications since the release of first iOS SDK. He is also an enthusiastic Node, Scala, and Haskell developer.
Aside from industry, Fatih earned his Ph.D. degree in software engineering from cole de technologie suprieure, Universit du Qubec by researching on Mobile Human-Computer Interaction, Software Engineering, and Machine Learning.
His specialties include applied predictive and optimization models, human-computer interaction, functional programming, machine learning, and mobile application architecture and development.
Fatih currently works as a Director, Consulting at CGI Group Inc, Montreal, and continues to his academic research and publications as a postdoctoral researcher at cole de technologie suprieure.
You can find him talking on Swift and Functional Programming at meetups such as http://www.meetup.com/swift-mtl/, on GitHub at https://github.com/conqueror, on Twitter as @thefatih, and on Instagram as @thefatih.
About the Reviewer
Giordano Scalzo is a developer with 20 years of programming experience, since the days of ZXSpectrum. He has worked in C++, Java, .NET, Ruby, Python and in a ton of other languages he has forgotten the names of.
After years of backend development, over the past five years, Giordano has developed extensively for iOS, releasing more than 20 apps, apps that he wrote for clients, enterprise application, or for his own company.
Currently, he is a contractor in London, where, through his company, Effective Code Ltd, http://effectivecode.co.uk, he delivers code for iOS aiming at quality and reliability.
In his spare time, when he is not crafting retro game clones for iOS, he writes his thoughts on http://giordanoscalzo.com.
Id like to thank my better half, Valentina, who lovingly supports me in everything I do: without you, none of this would have been possible.
Thanks to my bright future, Mattia and Luca, for giving me lots of smiles and hugs when I needed them.
Finally, my gratitude goes to my mum and dad, who gave my curiosity and the support to follow my passions, begun one day when they bought me a ZXSpectrum.
www.PacktPub.com
For support files and downloads related to your book, please visit www.PacktPub.com .
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at service@packtpub.com for more details.
At www.PacktPub.com , you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www.packtpub.com/mapt
Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career.
Why subscribe?
- Fully searchable across every book published by Packt
- Copy and paste, print, and bookmark content
- On demand and accessible via a web browser
Customer Feedback
Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial process. To help us improve, please leave us an honest review on this book's Amazon page at https://www.amazon.com/dp/1787284506.
If you'd like to join our team of regular reviewers, you can e-mail us at customerreviews@packtpub.com. We award our regular reviewers with free eBooks and videos in exchange for their valuable feedback. Help us be relentless in improving our products!
Dedication
For Grace,
being a father may make me a better person.
For Necmiye,
because of the love and support throughout the writing of this book.
For Fehiman,
I am grateful for everything you have done for us.
For Negar and Su Tamina,
love you all.
Preface
Functional programming (FP) is getting a lot of attention as it eases many of the difficulties faced in object-oriented programming (OOP), such as testability, maintainability, scalability, and concurrency. Swift has a lot of functional programming features that can be easily used, but most Objective-C and Swift programmers are not very familiar with these tools.
Next page