Я пытаюсь найти реализацию этой сигнатуры функции Scala:
def explode[A, B](f: A => List[B]): List[A => B]
Возможно обратное направление:
def nest[A, B](fs: List[A => B]): A => List[B] = (a: A) => fs.map(_(a))
К настоящему времени я склонен полагать, что первый (explode
) нереализуем, но я рад, что ошибся. Если это действительно невозможно реализовать, есть ли за этим глубокая причина?
На мой взгляд, я, по сути, прошу компилятор дублировать этот ввод A
несколько n
раз (размер List
s) и зафиксировать его как ввод.
B
) - person Eliav Lavi   schedule 27.12.2020def explode[A, B](f: A => List[B])(a: A): List[(A, B)] = { f(a).map(b => a -> b) }
? - person Tomer Shetah   schedule 27.12.2020