Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions Task7/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/

### Kotlin ###
.kotlin

### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/

### Mac OS ###
.DS_Store
3 changes: 3 additions & 0 deletions Task7/.idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Task7/.idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions Task7/.idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions Task7/.idea/libraries/KotlinJavaRuntime.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Task7/.idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Task7/.idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions Task7/.idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

15 changes: 15 additions & 0 deletions Task7/Task7.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/testResources" type="java-test-resource" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
</component>
</module>
3 changes: 3 additions & 0 deletions Task7/src/Main.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
fun main() {
println("Hello World!")
}
60 changes: 60 additions & 0 deletions Task7/src/lamndacollections.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
import java.nio.file.DirectoryStream.Filter
//Part 2: Filtering Strings with Lambda
fun filterNames(names: List<String>, filtered: (String) -> Boolean): List<String>{
return names.filter(filtered)
}

//Part 4: Customizing the Filter of a List
fun customFilter(numbers: List<Int>, filter: (Int) -> Boolean): List<Int>{
return numbers.filter(filter)
}

//Part 5: Combining Lambdas
fun processNumbers(numbers: List<Int>,filter: (Int) -> Boolean ): List<Int>{
return numbers.filter(filter).filter(filter)
}

//Bonus
fun processNumbers(numbers: List<Int>,filter: (Int) -> Boolean, transform: (Int) -> Int ): List<Int>{
return numbers.filter(filter).map(transform)
}



fun main() {

//Part 1: Lambda with List Transformation
val listOfNumbers = listOf(1,2,3,4,5,6,7,8,9,10)
val doubledNumbers = listOfNumbers.map { it * 2 }
println(doubledNumbers)

//Part 2: Filtering Strings with Lambda
val names = listOf("Alice", "Bob", "Amir", "Charlie", "Annie", "David")
val filteredNames = filterNames(names) { it.startsWith('A') }
println(filteredNames)

//Part 3: Sorting with Custom Lambda
val words = listOf("apple", "banana", "kiwi", "strawberry", "grape")
val sortedList = words.sortedByDescending { it.length }
println(sortedList)

//Part 4: Customizing the Filter of a List
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val greaterThan5 = customFilter(numbers) {it > 5}
val evenNumbers = customFilter(numbers) {it % 2 == 0}
val multiplesOf3 = customFilter(numbers) {it % 3 ==0}

println(greaterThan5)
println(evenNumbers)
println(multiplesOf3)

//Part 5: Combining Lambdas
// I'm reusing numbers parameter from part 4
val processedNumbers = processNumbers(numbers) {it % 2 != 0}.map { it * it }
println(processedNumbers)

//Bonus
val processedNumbersBonus = processNumbers(numbers, { it % 2 != 0 }, { it * it })
println(processedNumbers)

}