Hint: filter uses braces with condition inside [OK]
Common Mistakes:
Using map instead of filter
Missing curly braces in lambda
Wrong condition inside lambda
3. What is the output of this Kotlin code?
val numbers = sequenceOf(1, 2, 3, 4)
val result = numbers.filter { it % 2 == 0 }.map { it * 10 }.toList()
println(result)
medium
A. [10, 20]
B. [2, 4]
C. [20, 40]
D. [1, 3]
Solution
Step 1: Apply filter to keep even numbers
Filter keeps numbers where it % 2 == 0, so 2 and 4 remain.
Step 2: Apply map to multiply each by 10
Mapping multiplies each by 10: 2 * 10 = 20, 4 * 10 = 40.
Final Answer:
[20, 40] -> Option C
Quick Check:
filter evens then map *10 = [20, 40] [OK]
Hint: Filter first, then map transforms filtered items [OK]
Common Mistakes:
Mapping before filtering
Confusing filter condition
Forgetting to convert sequence to list
4. Find the error in this Kotlin code snippet:
val seq = sequenceOf(1, 2, 3, 4)
val filtered = seq.filter(it % 2 == 0)
println(filtered.toList())
medium
A. Missing curly braces around lambda in filter
B. Using map instead of filter
C. Sequence cannot be converted to list
D. Filter condition should be it % 2 != 0
Solution
Step 1: Check filter lambda syntax
Filter requires a lambda with curly braces: { it % 2 == 0 }. The code misses braces.
Step 2: Validate other options
Map is not used here; sequence can convert to list; condition can be any boolean expression.
Final Answer:
Missing curly braces around lambda in filter -> Option A
Quick Check:
filter needs braces for lambda [OK]
Hint: Always use braces {} for lambdas in filter [OK]
Common Mistakes:
Omitting braces in lambda
Confusing filter and map
Wrong filter condition assumed as error
5. Given a sequence of strings seq = sequenceOf("apple", "banana", "cherry", "date"), which Kotlin code correctly filters strings containing letter 'a' and converts them to uppercase?
hard
A. seq.filter { it.contains('a') }.map { it.lowercase() }.toList()
B. seq.map { it.uppercase() }.filter { it.contains('a') }.toList()
C. seq.map { it.lowercase() }.filter { it.contains('a') }.toList()
D. seq.filter { it.contains('a') }.map { it.uppercase() }.toList()
Solution
Step 1: Filter strings containing 'a'
Use filter { it.contains('a') } to keep only strings with 'a'. This keeps "apple", "banana", "date".
Step 2: Convert filtered strings to uppercase
Use map { it.uppercase() } to change these strings to uppercase.
Final Answer:
seq.filter { it.contains('a') }.map { it.uppercase() }.toList() -> Option D