Subato

Resource Files

List in Kotlin-Funktionen

Schreiben Sie rekursive Funktionen für einen Datentypen einfach verketteter Listen. Die Listen sind nicht modifizierbar.

  • fun <A> isEmpty(xs:List<A>):Boolean
    Nur wr für Nil-Listen.
  • fun <A> length(xs:List<A>):Int
    Die Anzahl der Elemente in xs.
  • fun <A> last(xs:List<A>):A
    Das leztzte Element. Wirft Ausnahme für leere Listen.
  • fun <A> append(xs:List<A>, ys:List<A>):List<A>
    Hängt zwei Listen aneinander.
  • fun <A> take(xs:List<A>,n:Int):List<A>
    Nimmt die Teilliste der ersten n Elemente aus xs.
  • fun <A,B> map(xs:List<A>,f:(A)->B):List<B>
    Erzeugt neue Liste durch Anwendung der Funktion auf alle Elemente.
  • fun <A> forEach(xs:List<A>,f:(A)->Unit):Unit
    Wendet einen Code-Block auf alle Elemente an.
  • fun <A> filter(xs:List<A>,p:(A)->Boolean):List<A>
    Teilliste aller Elemente, für die die Eigenschaft p gilt.
  • fun <A,B> fold(xs:List<A>,s:B,op:(B,A)->B): B
    Faltung mit dem übergebenen Operator und Startwert.
  • fun <A> reverse(xs:List<A>):List<A>
    Erzeugt Liste mit Elementen in umgekehrter Reihenfolge. Kann mit Faltung realisiert werden.
  • fun <A> concat(xss:List<List<A>>):List<A>
    Nimmt aus einer Liste von Listen alle Element für eine Ergebnisliste. Kann mit Faltung realisiert werden.
  • fun sum(xs:List<Int>):Int
    Berechnet die Summe aller Elemente der Zahlenliste. Kann mit Faltung realisiert werden.

package name.panitz.util sealed class List<out T> object Nil: List<Nothing>(){ override fun toString(): String ="Nil" } data class Cons<out T>(val hd:T,val tl:List<T>):List<T>() fun <A> isEmpty(xs:List<A>):Boolean fun <A> length(xs:List<A>):Int fun <A> last(xs:List<A>):A fun <A> append(xs:List<A>, ys:List<A>):List<A> fun <A> take(xs:List<A>,n:Int):List<A> fun <A,B> map(xs:List<A>,f:(A)->B):List<B> fun <A> forEach(xs:List<A>,f:(A)->Unit):Unit fun <A> filter(xs:List<A>,p:(A)->Boolean):List<A> fun <A,B> fold(xs:List<A>,s:B,op:(B,A)->B): B fun <A> reverse(xs:List<A>):List<A> fun <A> concat(xss:List<List<A>>):List<A> fun sum(xs:List<Int>):Int
kt
You are not logged in and therefore you cannot submit a solution.