``` fun <T> Sequence<T>.defaultIfEmpty...
# stdlib
j
Copy code
fun <T> Sequence<T>.defaultIfEmpty(value: T): Sequence<T> {
  val upstream = this;
  return object : Sequence<T> {
    private val delegate: Iterator<T> by lazy {
      val first = upstream.iterator()
      if (first.hasNext()) first else listOf(value).iterator()
    }
    override fun iterator() = object: Iterator<T> by delegate {}
  }
}