Bird
Raised Fist0
Kotlinprogramming~5 mins

Passing lambdas to functions in Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a lambda expression in Kotlin?
A lambda expression is a small block of code that can be passed around and executed later. It is like a mini-function without a name.
Click to reveal answer
beginner
How do you pass a lambda to a function in Kotlin?
You define a function parameter with a function type, then pass the lambda when calling the function. For example: fun doSomething(action: () -> Unit) { action() }
Click to reveal answer
beginner
What is the syntax to call a function with a lambda as the last argument?
If the lambda is the last argument, you can put it outside the parentheses. Example: doSomething() { println("Hello") }
Click to reveal answer
intermediate
Explain the difference between passing a lambda and a regular function as a parameter.
A lambda is an anonymous function defined inline, while a regular function has a name and is defined separately. Both can be passed as parameters if the types match.
Click to reveal answer
beginner
What is the benefit of using lambdas when passing functions?
Lambdas make code concise and flexible. They allow you to write small pieces of behavior inline without creating separate named functions.
Click to reveal answer
How do you declare a function parameter that accepts a lambda with no parameters and no return value?
Afun example(action: (Int) -> Unit)
Bfun example(action: () -> Unit)
Cfun example(action: () -> Int)
Dfun example(action: Unit)
Which of these is the correct way to call a function with a lambda as the last argument?
AdoSomething({ println("Hi") })
BdoSomething { println("Hi") }
CAll of the above
DdoSomething() { println("Hi") }
What keyword is used to define a lambda expression in Kotlin?
ANo keyword, just curly braces {}
Bfun
Cdef
Dlambda
What does the 'it' keyword represent inside a lambda with one parameter?
AThe lambda's parameter
BThe function name
CThe return value
DThe class instance
Why might you prefer passing a lambda instead of a named function?
ALambdas do not use memory
BLambdas are always faster
CNamed functions cannot be passed as parameters
DLambdas allow inline, concise code
Explain how to pass a lambda to a Kotlin function and call it inside the function.
Think about how you define the parameter and how you use it inside.
You got /3 concepts.
    Describe the benefits of using lambdas when passing behavior to functions.
    Why do programmers like lambdas for small tasks?
    You got /4 concepts.

      Practice

      (1/5)
      1. What is a lambda in Kotlin when passed to a function?
      easy
      A. A small block of code that can be passed and executed inside the function
      B. A type of variable that stores numbers
      C. A special kind of loop
      D. A keyword to declare a class

      Solution

      1. Step 1: Understand what a lambda is

        A lambda is a small piece of code that you can write inline and pass around like a value.
      2. Step 2: Recognize its use in functions

        Functions can accept lambdas to customize behavior without changing the function code.
      3. Final Answer:

        A small block of code that can be passed and executed inside the function -> Option A
      4. Quick Check:

        Lambda = small code block passed to function [OK]
      Hint: Lambdas are code blocks you pass to functions [OK]
      Common Mistakes:
      • Thinking lambda is a variable type
      • Confusing lambda with loops
      • Believing lambda is a keyword for classes
      2. Which of the following is the correct syntax to pass a lambda to a function in Kotlin?
      easy
      A. fun greet(action: Unit -> ()) { action() } greet { println("Hi") }
      B. fun greet(action: () -> Unit) { action() } greet { println("Hi") }
      C. fun greet(action: () -> Unit) { action } greet { println("Hi") }
      D. fun greet(action: () -> Unit) { action() } greet(println("Hi"))

      Solution

      1. Step 1: Check function parameter type

        The function expects a lambda with no parameters and no return value: () -> Unit.
      2. Step 2: Check how lambda is called and passed

        Inside the function, calling action() executes the lambda. Passing greet { println("Hi") } is correct syntax.
      3. Final Answer:

        fun greet(action: () -> Unit) { action() } greet { println("Hi") } -> Option B
      4. Quick Check:

        Correct lambda syntax = fun greet(action: () -> Unit) { action() } greet { println("Hi") } [OK]
      Hint: Use () -> Unit and call lambda with () inside function [OK]
      Common Mistakes:
      • Wrong lambda type syntax
      • Forgetting to call lambda with ()
      • Passing lambda as function argument incorrectly
      3. What will be the output of this Kotlin code?
      fun operate(x: Int, action: (Int) -> Int): Int {
          return action(x)
      }
      
      fun main() {
          val result = operate(5) { it * 2 }
          println(result)
      }
      medium
      A. 5
      B. 25
      C. 10
      D. Compilation error

      Solution

      1. Step 1: Understand the operate function

        It takes an integer and a lambda that doubles the integer (it * 2).
      2. Step 2: Calculate the result

        Passing 5 to the lambda doubles it to 10, which is returned and printed.
      3. Final Answer:

        10 -> Option C
      4. Quick Check:

        5 * 2 = 10 [OK]
      Hint: Trace lambda input and output carefully [OK]
      Common Mistakes:
      • Confusing input and output values
      • Forgetting lambda parameter 'it'
      • Assuming no return from lambda
      4. Identify the error in this Kotlin code snippet:
      fun applyOperation(x: Int, op: (Int) -> Int) {
          op(x)
      }
      
      fun main() {
          applyOperation(3) { println(it * 3) }
      }
      medium
      A. No error, code runs fine
      B. The function applyOperation should return Int but returns Unit
      C. The lambda syntax is incorrect
      D. The lambda passed does not return a value but function expects Int return

      Solution

      1. Step 1: Check function signature and lambda

        applyOperation expects a lambda returning Int, but the lambda only prints and returns Unit.
      2. Step 2: Understand mismatch consequences

        Because the lambda returns Unit, but function expects Int, this causes a type mismatch error.
      3. Final Answer:

        The lambda passed does not return a value but function expects Int return -> Option D
      4. Quick Check:

        Lambda return type mismatch = The lambda passed does not return a value but function expects Int return [OK]
      Hint: Match lambda return type with function parameter type [OK]
      Common Mistakes:
      • Ignoring return type mismatch
      • Thinking println returns Int
      • Assuming no return needed for lambdas
      5. You want to write a Kotlin function filterAndTransform that takes a list of integers and two lambdas: one to filter the list and one to transform each filtered item. Which of these function signatures correctly allows passing both lambdas?
      hard
      A. fun filterAndTransform(list: List<Int>, filter: (Int) -> Boolean, transform: (Int) -> Int): List<Int>
      B. fun filterAndTransform(list: List<Int>, filter: Int, transform: Int): List<Int>
      C. fun filterAndTransform(list: List<Int>, filter: (Int) -> Int, transform: (Int) -> Boolean): List<Int>
      D. fun filterAndTransform(list: List<Int>, filter: () -> Boolean, transform: () -> Int): List<Int>

      Solution

      1. Step 1: Identify correct lambda types for filtering and transforming

        Filtering needs a lambda that takes Int and returns Boolean; transforming needs a lambda that takes Int and returns Int.
      2. Step 2: Match function signature with these lambda types

        fun filterAndTransform(list: List<Int>, filter: (Int) -> Boolean, transform: (Int) -> Int): List<Int> matches these types correctly; others have wrong parameter or return types.
      3. Final Answer:

        fun filterAndTransform(list: List<Int>, filter: (Int) -> Boolean, transform: (Int) -> Int): List<Int> -> Option A
      4. Quick Check:

        Filter returns Boolean, transform returns Int [OK]
      Hint: Filter lambda returns Boolean, transform lambda returns transformed value [OK]
      Common Mistakes:
      • Using wrong lambda parameter or return types
      • Confusing filter and transform lambda roles
      • Using lambdas with no parameters
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard