So far in this chapter, we have already seen how to pass functions as parameters. The ways we have done this up until now are either by creating a function literal or by using a function that returns another function.
Function references
Top-level function references
But what if we have a top-level function and we want to use that? We can wrap the function in another function, of course:
    fun isEven(k: Int): Boolean = k % 2 == 0 
 
    val ints = listOf(1, 2, 3, 4, 5) 
    ints.filter { isEven(it) } 
The alternative is to use what is called a function reference. Using the same definition for isEven, we can write it as follows:
    val ints = listOf(1, 2, 3, 4, 5) 
    ints.filter(::isEven) 
Note that the :: syntax is used...