- Rename "Aufgabe 5"->Aufgabe5 and "Aufgabe 6"->Aufgabe6; spaces broke bazel run (Aspect URL-encoding, scala/JVM launcher self-path). - Per-directory BUILD.bazel: Aufgabe5 (swift_binary), Aufgabe6 (swift_binary). - Aufgabe6/Third: Scala app via rules_scala (scala_library + scala_binary). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
46 lines
1 KiB
Swift
46 lines
1 KiB
Swift
import Foundation
|
|
|
|
class Course {
|
|
let name: String
|
|
let students: [String]
|
|
|
|
init(name: String, students: [String]) {
|
|
self.name = name
|
|
self.students = students
|
|
}
|
|
}
|
|
|
|
let courses = [
|
|
Course(name: "M323", students: ["Peter", "Petra", "Paul", "Paula"]),
|
|
Course(name: "M183", students: ["Paula", "Franz", "Franziska"]),
|
|
Course(name: "M117", students: ["Paul", "Paula"]),
|
|
Course(name: "M114", students: ["Petra", "Paul", "Paula"]),
|
|
]
|
|
|
|
// print(
|
|
// courses.map {
|
|
// return $0.students
|
|
// }.filter {
|
|
// $0.contains("Peter")
|
|
// }.count
|
|
// )
|
|
|
|
// print(
|
|
// courses.map {
|
|
// return $0.students
|
|
// }.filter {
|
|
// $0.contains("Petra")
|
|
// }.count
|
|
// )
|
|
|
|
func studentAttendsCourse(studentName: String, courses: [Course]) -> String {
|
|
let visitedCourses = courses.map {
|
|
return ($0.name, $0.students)
|
|
}.filter {
|
|
$0.1.contains(studentName)
|
|
}.map {
|
|
return $0.0
|
|
}
|
|
return
|
|
"\(studentName) visits the following courses: \(visitedCourses.joined(separator: ", "))"
|
|
}
|