diff --git a/src/Main.kt b/src/Main.kt index a7a5e00..820d824 100644 --- a/src/Main.kt +++ b/src/Main.kt @@ -1,3 +1,31 @@ +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 processNumbersMod(numbers: List, filters: (Int) -> Boolean, transforms: (Int) -> Int): List { + return numbers.filter(filters).map(transforms) +} + 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) + 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) + 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))) + 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