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 declare a simple lambda that takes two integers and returns their sum?
You write: { a: Int, b: Int -> a + b }. This means the lambda takes two integers a and b and returns their sum.
Click to reveal answer
beginner
What is the syntax to assign a lambda to a variable in Kotlin?
You assign it like this: val sum: (Int, Int) -> Int = { a, b -> a + b }. Now sum holds the lambda and you can call it like a function.
Click to reveal answer
beginner
How do you call a lambda stored in a variable?
If you have val greet = { name: String -> "Hello, $name!" }, you call it like this: greet("Alice").
Click to reveal answer
intermediate
What is the implicit name for a single parameter in a Kotlin lambda?
If a lambda has only one parameter, you can use it instead of naming it explicitly. For example: { it * 2 } doubles the input.
Click to reveal answer
Which of the following is a correct Kotlin lambda syntax for adding two numbers?
A{ x: Int, y: Int -> x + y }
B(x, y) => x + y
Cfun(x, y) { return x + y }
Dlambda x, y: x + y
✗ Incorrect
Option A is the correct Kotlin lambda syntax. Options A and D are from other languages, and C is a function, not a lambda.
How do you call a lambda stored in a variable named multiply with arguments 3 and 4?
Amultiply->(3,4)
Bmultiply.call(3, 4)
Cmultiply(3, 4)
Dcall multiply(3,4)
✗ Incorrect
In Kotlin, you call a lambda like a normal function using parentheses and arguments.
What does the it keyword represent in a Kotlin lambda?
AThe single implicit parameter of the lambda
BThe return value of the lambda
CA keyword to exit the lambda
DA variable declared outside the lambda
✗ Incorrect
it is used as the name of the single parameter when a lambda has exactly one parameter.
Which of these is NOT a valid way to declare a lambda in Kotlin?
Aval f = { x: Int -> x * 2 }
Bval f: (Int) -> Int = { x -> x * 2 }
Cval f = fun(x: Int) = x * 2
Dval f = lambda x: x * 2
✗ Incorrect
Option D uses Python-like syntax which is invalid in Kotlin.
What is the return type of a Kotlin lambda that looks like { a: Int, b: Int -> a + b }?
ANothing
BInt
CString
DUnit
✗ Incorrect
The lambda returns the sum of two integers, so its return type is Int.
Explain how to declare and use a lambda in Kotlin that takes one parameter and returns its square.
Think about how to write the lambda and how to call it with a number.
You got /4 concepts.
Describe the difference between a lambda expression and a regular function in Kotlin.
Focus on how lambdas are unnamed and can be stored or passed around easily.
You got /4 concepts.
Practice
(1/5)
1. What is a lambda expression in Kotlin?
easy
A. A small unnamed function stored in a variable
B. A class declaration
C. A type of loop
D. A way to declare variables
Solution
Step 1: Understand lambda basics
Lambdas are small functions without a name that can be stored in variables.
Step 2: Compare with other options
Classes, loops, and variable declarations are different concepts from lambdas.
Final Answer:
A small unnamed function stored in a variable -> Option A
Quick Check:
Lambda = unnamed function [OK]
Hint: Lambdas are unnamed functions in curly braces [OK]
Common Mistakes:
Confusing lambdas with classes
Thinking lambdas are loops
Mixing lambdas with variable declarations
2. Which of the following is the correct syntax for a lambda that takes two Ints and returns their sum?
easy
A. { a, b : Int -> a + b }
B. (a, b) -> { a + b }
C. fun(a, b) { return a + b }
D. { a, b -> a + b }
Solution
Step 1: Recall lambda syntax
Lambdas use curly braces with parameters before an arrow, then the body: { params -> body }
Step 2: Check each option
{ a, b -> a + b } matches correct syntax. (a, b) -> { a + b } wrongly uses parentheses outside braces. fun(a, b) { return a + b } is a function, not a lambda. { a, b : Int -> a + b } incorrectly places type annotation.
Final Answer:
{ a, b -> a + b } -> Option D
Quick Check:
Correct lambda syntax = { params -> body } [OK]
Hint: Lambdas use braces with arrow separating params and body [OK]
Common Mistakes:
Using parentheses instead of braces
Trying to write full function syntax
Incorrect type annotations inside lambda
3. What is the output of this Kotlin code?
val multiply = { x: Int, y: Int -> x * y }
println(multiply(3, 4))
medium
A. 12
B. 7
C. 34
D. Error
Solution
Step 1: Understand the lambda function
The lambda takes two Ints x and y, and returns their product x * y.
Step 2: Calculate the output
Calling multiply(3, 4) returns 3 * 4 = 12.
Final Answer:
12 -> Option A
Quick Check:
3 * 4 = 12 [OK]
Hint: Multiply parameters inside lambda to get output [OK]
Common Mistakes:
Adding instead of multiplying
Concatenating numbers as strings
Syntax errors in lambda call
4. Identify the error in this Kotlin lambda declaration:
val greet = { name String -> "Hello, $name" }
medium
A. Lambda body must be outside braces
B. Arrow is missing after parameters
C. Missing colon between parameter and type
D. Cannot use string interpolation in lambda
Solution
Step 1: Check parameter syntax
Parameters must have a colon between name and type: name: String
Step 2: Verify lambda structure
The arrow -> is present after parameters, and string interpolation is allowed inside lambdas.
Final Answer:
Missing colon between parameter and type -> Option C
Quick Check:
Parameter syntax = name: Type [OK]
Hint: Use colon between param name and type in lambdas [OK]
Common Mistakes:
Omitting colon in parameter declaration
Forgetting arrow after parameters
Thinking string interpolation is disallowed
5. How can you declare a lambda in Kotlin that filters a list of integers to keep only even numbers?
hard
A. val evenFilter = { list: List<Int> -> list.filter(it % 2 == 0) }
B. val evenFilter = { list: List<Int> -> list.filter { it % 2 == 0 } }
C. val evenFilter = { list: List<Int> -> list.filter { x -> x / 2 == 0 } }
D. val evenFilter = { list: List<Int> -> list.filter { x -> x % 2 = 0 } }
Solution
Step 1: Understand filter usage
filter takes a lambda returning true for elements to keep. Correct condition is x % 2 == 0 for even numbers.
Step 2: Check each option
val evenFilter = { list: List<Int> -> list.filter { it % 2 == 0 } } correctly uses filter with lambda and modulus check. val evenFilter = { list: List<Int> -> list.filter(it % 2 == 0) } misses braces for lambda. val evenFilter = { list: List<Int> -> list.filter { x -> x / 2 == 0 } } uses division instead of modulus. val evenFilter = { list: List<Int> -> list.filter { x -> x % 2 = 0 } } uses assignment (=) instead of comparison (==).
Final Answer:
val evenFilter = { list: List<Int> -> list.filter { it % 2 == 0 } } -> Option B
Quick Check:
Filter with { it % 2 == 0 } keeps evens [OK]
Hint: Use filter { it % 2 == 0 } to select even numbers [OK]
Common Mistakes:
Using assignment (=) instead of comparison (==)
Using division (/) instead of modulus (%)
Omitting braces around lambda in filter
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.