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
index a7a5e00..9a12a47 100644
--- a/src/Main.kt
+++ b/src/Main.kt
@@ -1,3 +1,39 @@
fun main() {
- println("Hello World!")
-}
\ No newline at end of file
+ // Part 1
+ val numbers = (1..10).toList()
+ val numbersDoubled = numbers.map {it * 2}
+ println(numbersDoubled)
+ // Part 2
+ val names = listOf("Alice", "Bob", "Amir", "Charlie", "Annie", "David")
+ val namesStartingWithA = filterNames(names) {it.startsWith("A")}
+ println(namesStartingWithA)
+ // Part 3
+ val words = listOf("apple", "banana", "kiwi", "strawberry", "grape")
+ val sortedWordsDescending = {listOfWords: List -> listOfWords.sortedByDescending { it.length }}
+ println(sortedWordsDescending(words))
+ // Part 4
+ println(customFilter(numbers){ it > 5 })
+ println(customFilter(numbers){ it % 2 == 0 })
+ println(customFilter(numbers){ it % 3 == 0 })
+ // Part 5
+ println(processNumbers(numbers))
+ // Bonus
+ val processedNumbers_Bonus = processNumbers_Bonus(numbers, { it % 2 != 0 }) { it * it}
+ println(processedNumbers_Bonus)
+}
+// For Part 2
+fun filterNames(names: List, filterByFirstLetter: (String) -> Boolean): List{
+ return names.filter(filterByFirstLetter)
+}
+// For Part 4
+fun customFilter(numbers: List, filter: (Int) -> Boolean): List{
+ return numbers.filter(filter)
+}
+// Part 5
+fun processNumbers(numbers: List): List{
+ return numbers.filter { it % 2 != 0 }.map { it * it }
+}
+// Bonus
+fun processNumbers_Bonus(numbers: List, filterEvenNumbers: (Int) -> Boolean, squareNumbers: (Int) -> Int): List{
+ return numbers.filter(filterEvenNumbers).map(squareNumbers)
+}