Так что мне нужно реализовать функция, которая принимает два списка и функцию. Затем функция использует элементы из двух списков и применяет функцию к элементам и сохраняет их в список с помощью карты и/или сбрасывания и функций из класса списка.Scala: zipWith [A, B, C] (f: Function2 [A, B, C], l1: List [A], l2: List [B]): List [C] Метод
Пример:
• zipWith ((х: Int, у: Int) => х + у, список (1, 2, 3), список (4, 5, 6)) → Список (5, 7, 9)
• zipWith ((x: Int, y: Int) => x, List (1,2,3), List (4,5,6)) → Список (1, 2, 3)
Я не знаю, как использовать переданную функцию и применить ее в двух списках. Моя идея состояла в том, чтобы застегнуть два списка, а затем применить функцию к каждому элементу zipped-списка.
Можете ли вы показать нам код, который вы написали для вашей идеи? –
l1.zip (l2) .map {(A, B) => f (A, B)}, но я получаю ошибки совпадения типа, так как предполагаю, что я не могу использовать f в этой нотации. – Kiki
Метод 'zip' возвращает список кортежей, поэтому здесь отсутствует совпадение шаблонов: l1.zip (l2) .map {case (a, b) => f (a, b)} –