Sha256: fcb12a9a1eb7666e400581d72f75d63aef398bb0b59fdf7958f4f5320bd386e5

Contents?: true

Size: 1.12 KB

Versions: 205

Compression:

Stored size: 1.12 KB

Contents

fun <T> List<T>.customAppend(list: List<T>): List<T> {
    val result = mutableListOf<T>()
    result.addAll(this)
    result.addAll(list)
    return result
}

fun <T> List<List<T>>.customConcat(): List<T> {
    val result = mutableListOf<T>()
    forEach { result.addAll(it) }
    return result
}

fun <T> List<T>.customFilter(predicate: (T) -> Boolean): List<T> {
    val result = mutableListOf<T>()
    forEach { if (predicate(it)) { result.add(it) } }
    return result
}

val List<Any>.customSize: Int
    get() = size

fun <T, U> List<T>.customMap(transform: (T) -> U): List<U> {
    val result = mutableListOf<U>()
    forEach { result.add(transform(it)) }
    return result
}

fun <T, U> List<T>.customFoldLeft(initial: U, f: (U, T) -> U): U {
    if (isEmpty()) return initial
    return drop(1).customFoldLeft(f(initial, first()), f)
}

fun <T, U> List<T>.customFoldRight(initial: U, f: (T, U) -> U): U {
    if (isEmpty()) return initial
    return f(first(), drop(1).customFoldRight(initial, f))
}

fun <T> List<T>.customReverse(): List<T> {
    val result = mutableListOf<T>()
    forEach { result.add(0, it) }
    return result
}

Version data entries

205 entries across 205 versions & 1 rubygems

Version Path
trackler-2.2.1.98 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.97 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.96 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.95 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.94 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.93 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.92 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.91 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.90 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.89 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.88 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.87 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.86 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.85 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.84 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.83 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.82 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.81 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.80 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.79 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt