파라미터로 리스트를 전달해주고, 원본 list 에서, 파라미터로 받은 list 의 element 와 같은 인덱스의 값으로 된 리스트를 반환한다
public fun <T> List<T>.slice(indices: Iterable<Int>): List<T> {
val size = indices.collectionSizeOrDefault(10)
if (size == 0) return emptyList()
val list = ArrayList<T>(size)
for (index in indices) {
list.add(get(index))
}
return list
}
val list = listOf(1, 2, 3, 4, 5)
println(list.slice(listOf(2, 4))) // [3, 5]