From 0d03a6994ab157e4f8bb6b1f73943b7d5328c29d Mon Sep 17 00:00:00 2001 From: ahmedmandy Date: Thu, 13 Feb 2025 13:47:20 +0300 Subject: [PATCH 1/5] Completed Part 1. --- src/Main.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Main.kt b/src/Main.kt index a7a5e00..43992a2 100644 --- a/src/Main.kt +++ b/src/Main.kt @@ -1,3 +1,5 @@ fun main() { - println("Hello World!") + val integers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) + val integersDoubled = integers.map { it * 2 } + println(integersDoubled) } \ No newline at end of file From 781fee41e78304fe2ba2cbf01ae3f9c1b6af84b7 Mon Sep 17 00:00:00 2001 From: ahmedmandy Date: Thu, 13 Feb 2025 14:27:55 +0300 Subject: [PATCH 2/5] Completed Part 2. --- src/Main.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/Main.kt b/src/Main.kt index 43992a2..1e47ae9 100644 --- a/src/Main.kt +++ b/src/Main.kt @@ -1,5 +1,11 @@ +fun filterNames(list: List, isTrue: (String) -> Boolean): List { + return list.filter(isTrue) +} + fun main() { val integers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val integersDoubled = integers.map { it * 2 } println(integersDoubled) + val listOfNames = listOf("Alice", "Bob", "Amir", "Charlie", "Annie", "David") + println(filterNames(listOfNames, {it.first() == 'A'})) } \ No newline at end of file From 230ae2096cc476774b562c86b1e997355dbf9b26 Mon Sep 17 00:00:00 2001 From: ahmedmandy Date: Thu, 13 Feb 2025 21:58:45 +0300 Subject: [PATCH 3/5] Completed part 3. --- src/Main.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Main.kt b/src/Main.kt index 1e47ae9..6747e44 100644 --- a/src/Main.kt +++ b/src/Main.kt @@ -8,4 +8,7 @@ fun main() { println(integersDoubled) val listOfNames = listOf("Alice", "Bob", "Amir", "Charlie", "Annie", "David") println(filterNames(listOfNames, {it.first() == 'A'})) + val listOfWords = listOf("apple", "banana", "kiwi", "strawberry", "grape") + val descendingOrder = listOfWords.sortedByDescending { it.length } + println(descendingOrder) } \ No newline at end of file From 6d5681e006a11351dfa03a4b280b3bf7a7106639 Mon Sep 17 00:00:00 2001 From: ahmedmandy Date: Thu, 13 Feb 2025 22:13:50 +0300 Subject: [PATCH 4/5] Completed part 4. --- src/Main.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Main.kt b/src/Main.kt index 6747e44..4bb4b99 100644 --- a/src/Main.kt +++ b/src/Main.kt @@ -2,6 +2,14 @@ fun filterNames(list: List, isTrue: (String) -> Boolean): List { return list.filter(isTrue) } +fun customFilter(numbers: List, filter: (Int) -> Boolean): List { + return numbers.filter(filter) +} + +fun processNumbers(numbers: List): List { + return numbers.filter { it % 2 != 0 }.map { it * it } +} + fun main() { val integers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val integersDoubled = integers.map { it * 2 } @@ -11,4 +19,8 @@ fun main() { val listOfWords = listOf("apple", "banana", "kiwi", "strawberry", "grape") val descendingOrder = listOfWords.sortedByDescending { it.length } println(descendingOrder) + println(customFilter(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) { it > 5 }) + println(customFilter(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) { it % 2 == 0 }) + println(customFilter(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) { it % 3 == 0 }) + println(processNumbers(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))) } \ No newline at end of file From 537c486c7f24e223ac3889fa2fb09892ae228118 Mon Sep 17 00:00:00 2001 From: ahmedmandy Date: Thu, 13 Feb 2025 22:19:55 +0300 Subject: [PATCH 5/5] Completed bonus. --- src/Main.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Main.kt b/src/Main.kt index 4bb4b99..820d824 100644 --- a/src/Main.kt +++ b/src/Main.kt @@ -10,6 +10,10 @@ fun processNumbers(numbers: List): List { return numbers.filter { it % 2 != 0 }.map { it * it } } +fun processNumbersMod(numbers: List, filters: (Int) -> Boolean, transforms: (Int) -> Int): List { + return numbers.filter(filters).map(transforms) +} + fun main() { val integers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val integersDoubled = integers.map { it * 2 } @@ -23,4 +27,5 @@ fun main() { println(customFilter(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) { it % 2 == 0 }) println(customFilter(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) { it % 3 == 0 }) println(processNumbers(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10))) + println(processNumbersMod(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), filters = { it % 2 != 0 }, transforms = { it * it })) } \ No newline at end of file