Мне нужно реализовать функцию Map, используя только foldRight, foldLeft и развернуть. Это означает, что я должен пройтись по каждому элементу в списке и применить к нему функцию f.
Я объявил свой список следующим образом:
abstract class IntList
case class Nil() extends IntList
case class Cons(h: Int, t: IntList) extends IntList
И я реализовал функции foldRight, foldLeft и unold.
и реализация новой функции карты:
def map(ls: IntList, f: Int => Int): IntList = // ??
Я немного подумал, но понятия не имею, с чего начать. Я не могу использовать рекурсию в функции карты. Я уверен, что мне нужно объединить силу сгиба и раскрытия. Развернуть возвращает IntList, который является возвращаемым типом карты. Но я не уверен, что я должен дать с этой функцией.
У кого-нибудь есть подсказка? :)