Functions
Exercise 1 contains
def findStringsContainingA(strings: List[String]): List[String] =
strings.filter(str => str.contains('a'))
// example usage
findStringsContainingA(List("apple", "banana", "orange", "pear")) // returns List("apple", "banana", "orange")
Exercise 2 even numbers
def filterEvenNumbers(numbers: List[Int]): List[Int] =
numbers.filter(num => num % 2 == 0)
// example usage
filterEvenNumbers(List(1, 2, 3, 4, 5, 6)) // List(2, 4, 6)
Exercise 3 string lengths
def stringLengths(strings: List[String]): List[Int] =
strings.map(str => str.length)
// example usage
stringLengths(List("apple", "banana", "orange", "pear")) // List(5, 6, 6, 4)
Exercise 4: Default Parameters
def greet(name: String, greeting: String = "Hello"): Unit =
println(s"$greeting, $name!")
greet("Scala") // Should print "Hello, Scala!"
greet("World", "Hi") // Should print "Hi, World!"
Exercise 5: Named Arguments
def describePerson(name: String, age: Int, country: String = "unknown"): Unit =
println(s"$name is $age years old from $country.")
describePerson(age = 25, name = "Alice") // Should print "Alice is 25 years old from unknown."
Exercise 6: Varargs
def sum(numbers: Int*): Int = numbers.sum
println(sum(1, 2, 3, 4)) // Should print 10
println(sum()) // Should print 0
Exercise 7: Anonymous Functions and Map
Task: Given a list of integers, use an anonymous function to increment each element by 1, using the map method.
val numbers = List(1, 2, 3, 4)
val incrementedNumbers = numbers.map(n => n + 1)
println(incrementedNumbers) // Should print List(2, 3, 4, 5)