From a26ecc1895e09a669665c6de0d5c32a4d3e94bb1 Mon Sep 17 00:00:00 2001 From: abdulwahab alsenan Date: Thu, 13 Feb 2025 14:40:02 +0300 Subject: [PATCH 1/6] Completed Part 1: Lambda with List Transformation --- src/Main.kt | 3 --- src/Part_1.kt | 7 +++++++ 2 files changed, 7 insertions(+), 3 deletions(-) delete mode 100644 src/Main.kt create mode 100644 src/Part_1.kt 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/Part_1.kt b/src/Part_1.kt new file mode 100644 index 0000000..16ddab4 --- /dev/null +++ b/src/Part_1.kt @@ -0,0 +1,7 @@ +fun main() { + val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) + val numbersDoubled = numbers.map(double) + println(numbersDoubled) +} + +val double: (Int) -> Int = {number -> number * 2 } \ No newline at end of file From 5ea282ba0823c493d7c316d2809d6551b89ae1b3 Mon Sep 17 00:00:00 2001 From: abdulwahab alsenan Date: Thu, 13 Feb 2025 15:39:42 +0300 Subject: [PATCH 2/6] Part 2: Filtering Strings with Lambda --- src/Part_2.kt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/Part_2.kt diff --git a/src/Part_2.kt b/src/Part_2.kt new file mode 100644 index 0000000..49501e0 --- /dev/null +++ b/src/Part_2.kt @@ -0,0 +1,18 @@ +//filtering the letter J instead of A +fun main(){ + val namesList = listOf("Johnathan", "Dio", "Joseph", "Giorno", "Josuke", "Diego") + + println(filterNames(namesList,lambdaFuncThatTakesListAndReturnsFilteredList)) + +} + +fun filterNames(listName:List, lambdaFunction:(List)->List): List { + + return lambdaFunction(listName) +} + + +var lambdaFuncThatTakesListAndReturnsFilteredList: (List) -> List = + {names:List -> names.filter {it.contains("J")}} + +//I was getting annoyed at how lambda functions work. So, naming reminds me how they work \ No newline at end of file From 1ab64df60096c634102a2a7bd3628178b72591a4 Mon Sep 17 00:00:00 2001 From: abdulwahab alsenan Date: Thu, 13 Feb 2025 16:00:25 +0300 Subject: [PATCH 3/6] Completed Part 3: Sorting with Custom Lambda --- src/Part_3.kt | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/Part_3.kt diff --git a/src/Part_3.kt b/src/Part_3.kt new file mode 100644 index 0000000..f09dccb --- /dev/null +++ b/src/Part_3.kt @@ -0,0 +1,7 @@ +val lambdaSortDescending = {a:List -> a.sortedByDescending {it}} + +fun main(){ + val fruits = listOf("apple", "banana", "kiwi", "strawberry", "grape") + println(lambdaSortDescending(fruits)) + +} From 0f1f1ec28a21e78cd67cb0173448a38b5327bf56 Mon Sep 17 00:00:00 2001 From: abdulwahab alsenan Date: Sat, 15 Feb 2025 17:22:41 +0300 Subject: [PATCH 4/6] Completed Part 4: Customizing the Filter of a List --- src/Part_4.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/Part_4.kt diff --git a/src/Part_4.kt b/src/Part_4.kt new file mode 100644 index 0000000..63aafaa --- /dev/null +++ b/src/Part_4.kt @@ -0,0 +1,14 @@ +fun main(){ + 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 }) +} + +fun customFilter(numbers: List, filter: (Int) -> Boolean): List { + + var returnType = numbers.filter(filter) + + return returnType + } \ No newline at end of file From 4135cd2b29ab95a6b7137d936e48365a598e0fee Mon Sep 17 00:00:00 2001 From: abdulwahab alsenan Date: Sat, 15 Feb 2025 17:54:28 +0300 Subject: [PATCH 5/6] Completed Part 5: Combining Lambdas git add , oops --- src/Part_5.kt | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/Part_5.kt diff --git a/src/Part_5.kt b/src/Part_5.kt new file mode 100644 index 0000000..555e2cd --- /dev/null +++ b/src/Part_5.kt @@ -0,0 +1,9 @@ +fun main(){ + val numList = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) + println(processNumbers(numList)) +} + +fun processNumbers(numbers:List):List{ + var numbersFiltered = numbers.filter { it % 2 == 1 } + return numbersFiltered.map { number -> number * number } +} \ No newline at end of file From ec7d18c9ae315f65f594946d4de18e12a01fa332 Mon Sep 17 00:00:00 2001 From: abdulwahab alsenan Date: Sat, 15 Feb 2025 17:55:29 +0300 Subject: [PATCH 6/6] Completed Task --- src/Part_2.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Part_2.kt b/src/Part_2.kt index 49501e0..4ab84b6 100644 --- a/src/Part_2.kt +++ b/src/Part_2.kt @@ -1,4 +1,4 @@ -//filtering the letter J instead of A +//filtering the letter J instead of A fun main(){ val namesList = listOf("Johnathan", "Dio", "Joseph", "Giorno", "Josuke", "Diego")