Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions Collection_Ex.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
fun main() {
val words = listOf("Kotlin", "is", "awesome", "for", "Android", "development")

// Step 1
val wordLengths = words.associateWith { it.length }

// Step 2
wordLengths.filter { it.value > 4 }.forEach { (word, length) ->
println("$word has $length letters")
}
}
29 changes: 29 additions & 0 deletions Data_Processing_Ex.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
data class Student(val name: String, val age: Int, val score: Int)

fun List<Student>.averageScore(): Double =
if (isEmpty()) 0.0 else sumOf { it.score }.toDouble() / size

fun processStudents(students: List<Student>, action: (Student) -> Unit) {
students.forEach(action)
}

fun main() {
val students =
listOf(
Student("Alice", 20, 85),
Student("Bob", 21, 92),
Student("Jeff", 19, 78),
Student("Sara", 22, 95),
Student("Mike", 20, 65)
)

// students with score >= 80
students.filter { it.score >= 80 }.map { it.name }.forEach { println("Good student: $it") }

println("\nProcessing all students:")
processStudents(students) { student ->
println("${student.name} (${student.age}) scored ${student.score}")
}

println("\nAverage score of all students: ${students.averageScore()}")
}
16 changes: 16 additions & 0 deletions Higher_Order_Ex.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import kotlin.*

fun processList(numbers: List<Int>, predicate: (Int) -> Boolean): List<Int> =
numbers.filter(predicate)

fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

// Example 1: keep only even numbers
val evenNumbers = processList(numbers) { it % 2 == 0 }
println("Even: $evenNumbers")

// Example 2: keep only numbers > 5
val bigNumbers = processList(numbers) { it > 5 }
println("Big: $bigNumbers")
}