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.180 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.179 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.178 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.177 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.176 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.175 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.174 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.173 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.172 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.171 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.170 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.169 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.167 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.166 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.165 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.164 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.163 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.162 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.161 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt
trackler-2.2.1.160 tracks/kotlin/exercises/list-ops/.meta/src/reference/kotlin/CustomListExtensions.kt