내가 생각하는 flatMap을 에뮬레이트하는 또 다른 답변이 있습니다 (이 솔루션은 duplicateN을 적용 할 때 Unit을 반환한다는 것을 알았습니다)
implicit class ListGeneric[A](l: List[A]) {
def nDuplicate(x: Int): List[A] = {
def duplicateN(x: Int, tail: List[A]): List[A] = {
l match {
case Nil => Nil
case n :: xs => concatN(x, n) ::: duplicateN(x, xs)
}
def concatN(times: Int, elem: A): List[A] = List.fill(times)(elem)
}
duplicateN(x, l)
}
}
def times(n: Int, ls: List[String]) = ls.flatMap{ List.fill(n)(_) }
그러나 이것은 오히려 미리 결정된 목록에 대한 것이며 각 요소를 n 번 복제하고 싶습니다.