title: Why does Kotlin need function reference syntax?
body: <p>Kotlin docs stated that it supports <a href="https://kotlinlang.org/docs/reference/lambdas.html" rel="noreferrer">higher-order functions</a>. Why would the language even need a <code>::function</code> syntax when passing a top level function as an argument? </p>
  
  <p>Given: </p>
  
  <pre><code>fun isOdd(x: Int) = x % 2 != 0
  val numbers = listOf(1, 2, 3)
  println(numbers.filter(::isOdd)) // here.
  </code></pre>
  
  <p>Why not just</p>
  
  <pre><code>fun isOdd(x: Int) = x % 2 != 0
  val numbers = listOf(1, 2, 3)
  println(numbers.filter(isOdd)) // simple and makes more sense
  </code></pre>
  
  <p>More on the <a href="https://kotlinlang.org/docs/reference/reflection.html#function-references" rel="noreferrer">function reference syntax here</a>.</p>