Skip to content

Instantly share code, notes, and snippets.

fun main() {
runBlocking {
uuidFlow().collect{ log(it.toString()) }
}
}
fun uuidFlow(): Flow<UUID> = flow {
while (true) {
delay(100)
emit(UUID.randomUUID())
fun main() {
uuidSequence().forEach { value -> println(value) }
}
fun uuidSequence(): Sequence<UUID> = sequence {
while (true) {
Thread.sleep(100)
yield(UUID.randomUUID())
}
}
@kuceraf
kuceraf / VisitorDomainModel.kt
Created April 24, 2022 14:35
Kotlin Design Patterns Visitor domain model
abstract class Expression
class DoubleExpression(private val value: Double) : Expression()
class AdditionExpression(
private val left: Expression,
private val right: Expression
) : Expression()
fun main() {
@kuceraf
kuceraf / IntrusiveVisitor.kt
Last active April 24, 2022 14:49
Kotlin Design Pattern: IntrusiveVisitor
abstract class Expression {
abstract fun print(sb: StringBuilder)
}
class DoubleExpression(private val value: Double) : Expression() {
override fun print(sb: StringBuilder) {
sb.append(value)
}
}