public operator fun <T> Iterable<T>.minus(elements: Iterable<T>): List<T> {
val other = elements.convertToSetForSetOperationWith(this)
if (other.isEmpty())
return this.toList()
return this.filterNot { it in other }
}
val list = listOf(1, 2, 3, 4, 5)
val list2 = listOf(1, 2, 3)
println(list.minus(list2)) // [4, 5]
println(list) // [1, 2, 3, 4, 5]
// 원본리스트는 변하지 않는