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/Lambda_Collections.kt b/src/Lambda_Collections.kt new file mode 100644 index 0000000..050c57f --- /dev/null +++ b/src/Lambda_Collections.kt @@ -0,0 +1,45 @@ +fun main() { + // part 1 + println("Part 1:"); + val nums = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); + println("[*] ${nums.map {it * 2}}"); + + // part 2 + println("\nPart 2:"); + val names = mutableListOf("Alice", "Bob", "Amir", "Charlie", "Annie", "David"); + println("[*] ${filterNames(names) { it.contains("A" )}}"); + + // part 3 + println("\nPart 3:"); + val fruits = listOf("apple", "banana", "kiwi", "strawberry", "grape"); + println("[*] ${fruits.sortedByDescending { it.length }}") + + // part 4 + println("\nPart 4:"); + val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); + println("[*] ${customFilter(numbers) { it > 5 }}"); + println("[*] ${customFilter(numbers) { it % 2 == 0 }}"); + println("[*] ${customFilter(numbers) { it % 3 == 0}}"); + + // part 5 + println("\nPart 5:"); + val numberSquare = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); + println("[*] ${processNumbers(numberSquare, {it % 2 != 0}, {it * it})}"); + + +} + +fun filterNames( names: MutableList, filter: (String) -> Boolean ): List{ + return names.filter(filter); +} + +fun customFilter(numbers: List, filter: (Int) -> Boolean): List { + return numbers.filter(filter); +} + +fun processNumbers(numbers: List, filterEven: (Int) -> Boolean, filterSquare: (Int) -> (Int)): List { + var numEven = numbers.filter(filterEven); + var numSquare = numEven.map(filterSquare); + return numSquare; + +} 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