title: What are the differences between Listener and High-Order functions in Kotlin?
body: <p>Please explain a use cases and pros and cons of each approach.</p>
  
  <ol>
  <li><p>Use of interface.</p>
  
  <pre><code>fun doSomethingWithCallback(callback: Callback) {
      // Do something
      callback.call()
  }
  </code></pre></li>
  <li><p>Use of high-order function.</p>
  
  <pre><code>fun doSomethingWithCallback(callback: () -&gt; Unit) {
      // Do something
      callback()
  }
  </code></pre></li>
  </ol>