Book Image

Programming Kotlin

Book Image

Programming Kotlin

Overview of this book

Quickly learn the fundamentals of the Kotlin language and see it in action on the web. Easy to follow and covering the full set of programming features, this book will get you fluent in Kotlin for Android.
Table of Contents (20 chapters)
Programming Kotlin
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface

Higher order functions


A higher order function is simply a function that either accepts another function as a parameter, returns a function as its return value, or both.

Let's consider the first example:

    fun foo(str: String, fn: (String) -> String): Unit { 
      val applied = fn(str) 
      println(applied) 
    } 

Here, we have defined a function foo with two parameters. The first is a string, and the second is a function from string to string. When we say from string to string, we mean the function accepts a string input and returns another string as the output. Also note the syntax used to define the function parameter. The input types are wrapped in parentheses and the output type is separated by a thin arrow.

To invoke this function, we can pass in a function literal (recall that function literals were introduced in Chapter 4, Functions in Kotlin):

    foo("hello", { it.reversed() }) 

As you can see, the string we pass in is hello. This value is then passed...