Vorrei combinare due elenchi di lunghezza arbitraria in modo che gli elementi della seconda lista vengano inseriti dopo ogni n-esimo elemento nella prima lista. Se la prima lunghezza dell'elenco è inferiore a n, non viene generato alcun risultato.Come inserire elementi di 2 elenchi in scala
Quindi, avendo
val a = List(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
val b = List(101,102,103)
val n = 3
voglio l'elenco risultante a guardare come questo:
List(1,2,3,101,4,5,6,102,7,8,9,103,10,11,12,13,14,15)
Ho questo lavoro utilizzando un foldLeft
su a
, ma mi chiedo come la stessa logica potrebbe essere realizzato usando Scalaz?
Grazie per le risposte di tutti. Sono stati tutti utili per me!
Interessante. Se capisco correttamente il termine, l'apomorfismo e la ricorsione della coda sono una specie di esclusività reciproca? – marcin
Giusto. Potresti avere SOE con elenchi di "migliaia di dimensioni". Nota con il tuo esempio, l'apomorfismo è più efficiente del catamorfismo (foldLeft) perché si fermerà subito dopo la lista b diventa Nil –