From 5713bd29048719c84d2600d861fbf671cc91228c Mon Sep 17 00:00:00 2001 From: Rabab Date: Sat, 15 Feb 2025 19:35:42 +0300 Subject: [PATCH] finshed koltin lambda collection exersice --- lambdaCollections/src/Main.kt | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 lambdaCollections/src/Main.kt diff --git a/lambdaCollections/src/Main.kt b/lambdaCollections/src/Main.kt new file mode 100644 index 0000000..40f7c20 --- /dev/null +++ b/lambdaCollections/src/Main.kt @@ -0,0 +1,47 @@ +import java.awt.geom.AffineTransform + +fun main() { + + val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) + + val doubleNum = numbers.map{numbers -> numbers * 2} + println(doubleNum) + + val names = mutableListOf("Alice", "Bob", "Amir", "Charlie", "Annie", "David") + + val filterNames = names.filter { it.startsWith("A") } + println(filterNames) + + val words = listOf("apple", "banana", "kiwi", "strawberry", "grape") + + val descendingWords = words.sortedByDescending { it.length } + println(descendingWords) + + val greaterThanFive = customFilter(numbers) { it > 5 } + println("Numbers greater than 5: $greaterThanFive") + + val evenNumbers = customFilter(numbers) { it % 2 == 0 } + println("Numbers even: $evenNumbers") + + val multipleOf3 = customFilter(numbers) { it % 3 == 0 } +println("Numbers multiple of 3: $multipleOf3") + + val processNum = processNumbers(numbers, { it % 2 != 0 }, {it*it}) + println(processNum) + + val processNewNum = processNumbers(numbers, { it <= 6 }, {it*2}) + println(processNewNum) + +} + +fun customFilter(numbers: List, filter: (Int) -> Boolean): List { + return numbers.filter { filter(it) } +} +fun processNumbers(numbers: List, filter: (Int) -> Boolean, transform: (Int) -> Int): List { + + val filterOddNumbers = numbers.filter(filter) + + return filterOddNumbers.map(transform) + +} +