Any of those help Let's take a look what String::name actually is. It is a KProperty1. This interface implements (Student) -> String as well. So, we are actually dealing with a lambda which takes a Student as parameter and returns a String. Now, what does the map function take? The map function takes a lambda which maps some type to another ((T) -> R), which means we can pass Student::name to it. Like for any function you put the parameters inside parentheses.