Я собирался опубликовать это ранее, но у меня недостаточно SO, чтобы отправлять ответы на свои вопросы в течение 8 часов, поэтому пришлось подождать.Как отметил @ axel22, это было частью решения, которое я разместил на сайте Rosetta Code прошлой ночью.
def makeHCSequence(max: Int): Seq[Int] =
(0 to max - 1).foldLeft (Vector[Int]()) { (v, idx) =>
if (idx <= 1) v :+ 1 else v :+ (v(v(idx - 1) - 1) + v(idx - v(idx - 1)))
}
По какой-то причине моя проблема застряла, когда я пытался найти решение, используя Vector.range или Vector.iterate, очевидный выбор складывания влево мне просто не удался.