Implementa le operazioni di base sugli array.
Nei linguaggi funzionali, le operazioni sugli array come length, map e reduce sono molto comuni.
Implementa una serie di operazioni di base sugli array, senza usare le funzioni esistenti.
Il numero preciso e i nomi delle operazioni da implementare dipenderà dal track, per evitare conflitti con i nomi già esistenti, ma le operazioni generali che implementerai includono:
append (dati due array, aggiungi tutti gli elementi del secondo array alla fine del primo array);concatenate (data una serie di array, combina tutti gli elementi di tutti gli array in un unico array appiattito);filter (dati un predicato e un array, restituisci l'array di tutti gli elementi per cui predicate(item) è True);length (dato un array, restituisci il numero totale di elementi che contiene);map (date una funzione e un array, restituisci l'array dei risultati dell'applicazione di function(item) a tutti gli elementi);foldl (date una funzione, un array e un accumulatore iniziale, piega (riduci) ogni elemento nell'accumulatore da sinistra);foldr (date una funzione, un array e un accumulatore iniziale, piega (riduci) ogni elemento nell'accumulatore da destra);reverse (dato un array, restituisci un array con tutti gli elementi originali, ma in ordine inverso).Nota: l'ordine in cui gli argomenti vengono passati alle funzioni fold (foldl, foldr) è significativo.
I test di questo esercizio richiedono di usare le estensioni, un meccanismo per aggiungere nuove funzionalità a una classe esistente di cui non controlli direttamente il codice sorgente, senza doverne creare una sottoclasse. Per saperne di più su come Kotlin implementa le estensioni, dai un'occhiata alla documentazione ufficiale.
I metodi customFoldLeft e customFoldRight sono funzioni «fold», un concetto ben noto nel mondo della programmazione funzionale, ma meno in quello della programmazione orientata agli oggetti.
Se vuoi maggiori informazioni di contesto, dai un'occhiata a questa pagina dedicata a fold.
Iscriviti a Exercism per imparare e padroneggiare Kotlin con 88 esercizi e il mentoring di persone reali, tutto gratis.
Goditi un'introduzione pratica alla ricorsione, esplora le alternative imperative e funzionali a Operazioni su array e approfondisci la ricorsione in coda e le funzioni di accumulo.