Я пытаюсь проверить Вектор "путей", которые содержат все желаемые остановки. Я уже создал функцию, которая дает все пути, которые имеют данную остановку.
def pathIncludesPoint(pathList: PathList, stopWanted: Point): Option[Vector[Path]] = {
if (pathList.paths.isEmpty) None
else Some(
for {
path <- pathList.paths
stop <- path.stops
if stop.contains(stopWanted)
} yield path)
}
def pathIncludesListOfPoint(pathList: PathList, stopsWanted: Vector[Point]): Option[Vector[Path]] = {
if (pathList.paths.isEmpty) None
else Some(
pathList.paths.filter(path => stopsWanted.forall(stopWanted => pathIncludesPoint(pathList, stopWanted).contains(path)))
)
}
Я пытаюсь проверить, содержит ли Вектор требуемый путь:
pathList.paths.filter(path => stopsWanted.forall(stopWanted => pathIncludesPoint(pathList, stopWanted).contains(path)))
но последний путь возвращает ошибку, потому что я сравниваю Vector [Path] (что возвращает функцию "pathIncludePoint") и Path. Я не понимаю, используя библиотеку Scala, моя ошибка.
Спасибо!
Вот структура Path и PathList, если необходимо:
case class Path(segments: Vector[Segment]) {
def stops: Option[Vector[Point]] = {
if (segments.isEmpty) None
else Some({
for {
segment <- segments
} yield segment.from
}.tail)}
}
case class PathList(paths: Vector[Path]) {
}