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.139 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.138 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.137 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.136 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.135 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.134 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.133 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.132 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.131 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.130 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.129 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.128 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.127 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.126 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.125 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.124 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.123 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.122 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.121 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.120 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt