Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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)