From 0ba9df15db3244b411c9cd2e56cf407d325eb16c Mon Sep 17 00:00:00 2001 From: Yousef Date: Wed, 12 Feb 2025 22:36:56 +0300 Subject: [PATCH 1/6] part 1 done --- .idea/misc.xml | 2 +- src/Main.kt | 3 --- src/part1.kt | 5 +++++ 3 files changed, 6 insertions(+), 4 deletions(-) delete mode 100644 src/Main.kt create mode 100644 src/part1.kt diff --git a/.idea/misc.xml b/.idea/misc.xml index 03f397c..10a22f9 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/src/Main.kt b/src/Main.kt deleted file mode 100644 index a7a5e00..0000000 --- a/src/Main.kt +++ /dev/null @@ -1,3 +0,0 @@ -fun main() { - println("Hello World!") -} \ No newline at end of file diff --git a/src/part1.kt b/src/part1.kt new file mode 100644 index 0000000..5c05517 --- /dev/null +++ b/src/part1.kt @@ -0,0 +1,5 @@ + +fun main() { + val numbersList = (1..10).toList(); + println(numbersList.map { it * 2 }); +} From 2202fe750427fb4512b576999aa84be65bf2d3be Mon Sep 17 00:00:00 2001 From: Yousef Date: Wed, 12 Feb 2025 22:37:23 +0300 Subject: [PATCH 2/6] refactored part 1 --- src/part1.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/part1.kt b/src/part1.kt index 5c05517..e8ce629 100644 --- a/src/part1.kt +++ b/src/part1.kt @@ -1,5 +1,7 @@ fun main() { - val numbersList = (1..10).toList(); - println(numbersList.map { it * 2 }); + println( + (1..10).toList().map { it * 2 } + ) } + From 982b408cd9c17ab2a92f33f11460e6739358f8eb Mon Sep 17 00:00:00 2001 From: Yousef Date: Wed, 12 Feb 2025 22:55:01 +0300 Subject: [PATCH 3/6] part 2 done --- src/part2.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/part2.kt diff --git a/src/part2.kt b/src/part2.kt new file mode 100644 index 0000000..c370373 --- /dev/null +++ b/src/part2.kt @@ -0,0 +1,11 @@ +fun main() { + val namesList = listOf("Alice", "Bob", "Amir", "Charlie", "Annie", "David"); + + println(filterNames(namesList, startsWithA )) +} + +fun filterNames(textList: List, callBack: (String) -> Boolean): List { + return textList.filter(callBack); +} + +val startsWithA: (String) -> Boolean = { text -> text.startsWith('a')} \ No newline at end of file From ae1f2474f63c0daf21071ee37f1422b58f003052 Mon Sep 17 00:00:00 2001 From: Yousef Date: Wed, 12 Feb 2025 22:58:42 +0300 Subject: [PATCH 4/6] part 3 done --- src/part3.kt | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 src/part3.kt diff --git a/src/part3.kt b/src/part3.kt new file mode 100644 index 0000000..bfb6af8 --- /dev/null +++ b/src/part3.kt @@ -0,0 +1,6 @@ +fun main() { + val wordsList = listOf("apple", "banana", "kiwi", "strawberry", "grape"); + val sortedWordsList = wordsList.sortedByDescending { it.length }; + + println(sortedWordsList); +} \ No newline at end of file From 12791888581b8648acbc5600fa43ed77f227d691 Mon Sep 17 00:00:00 2001 From: Yousef Date: Wed, 12 Feb 2025 23:08:06 +0300 Subject: [PATCH 5/6] part 4 done and updated part 3 --- src/part2.kt | 2 +- src/part4.kt | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 src/part4.kt diff --git a/src/part2.kt b/src/part2.kt index c370373..03f8dba 100644 --- a/src/part2.kt +++ b/src/part2.kt @@ -8,4 +8,4 @@ fun filterNames(textList: List, callBack: (String) -> Boolean): List Boolean = { text -> text.startsWith('a')} \ No newline at end of file +val startsWithA: (String) -> Boolean = { text -> text.startsWith('A')} \ No newline at end of file diff --git a/src/part4.kt b/src/part4.kt new file mode 100644 index 0000000..226c033 --- /dev/null +++ b/src/part4.kt @@ -0,0 +1,13 @@ +fun main() { + val greaterThan5 = customFilter(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) { it > 5 } + val evenNumbers = customFilter(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) { it % 2 == 0 } + val multiplesOf3 = customFilter(listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)) { it % 3 == 0 } + + println(greaterThan5); + println(evenNumbers); + println(multiplesOf3); +} + +fun customFilter(numbers: List, filter: (Int) -> Boolean): List { + return numbers.filter(filter); +} \ No newline at end of file From e447936f4c0c6be0e220962110a2a6cd7aa5b3fb Mon Sep 17 00:00:00 2001 From: Yousef Date: Wed, 12 Feb 2025 23:21:48 +0300 Subject: [PATCH 6/6] part 5 done with bonus --- src/part5.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/part5.kt diff --git a/src/part5.kt b/src/part5.kt new file mode 100644 index 0000000..be4fa5b --- /dev/null +++ b/src/part5.kt @@ -0,0 +1,16 @@ +fun main() { + val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) + val oddNumbersSquared = processNumbers( + numbers, condition = { it % 2 != 0 }, transform = { it * it } + ) + + println(oddNumbersSquared) +} + +fun processNumbers( + numbers: List, + condition: (Int) -> Boolean, + transform: (Int) -> Int +): List { + return numbers.filter(condition).map(transform) +} \ No newline at end of file