```fun <T> Iterable<T>.filterUntil(pre...
# getting-started
s
Copy code
fun <T> Iterable<T>.filterUntil(predicate : (T) -> Boolean) : Sequence<T> {
    return sequence<T> {
        val iter = iterator()
        while (iter.hasNext()) {
            val n = iter.next()
            if (predicate(n)) {
                break
            }
            yield(n)
        }
    }
}
fun main(argv: Array<String>) {
    listOf(1,2,3,4,5).filterUntil { it == 3 }.map { it * 2}.forEach {
        println(it)
    }

}