package moe.kageru.spektacles import kotlin.system.measureTimeMillis fun main() { val res = measureTimeMillis { IoHandler.readFile("test.log") .map { ParsedLine.parse(it) } .filterNotNull() .filter { line -> line.user.exists { it == "kageru_" } } .flatMap { it.message.split(' ').asSequence() } //.flatMap { it.message.split(' ').k() } //.toCounter() //.counts["selphyDango"] } println(res) } class Counter(source: Iterable) : Iterable { val counts = mutableMapOf().apply { for (element in source) { this[element] = this.getOrDefault(element, 0) + 1 } } override fun iterator(): Iterator { return counts.keys.iterator() } } fun Iterable.toCounter(): Counter = Counter(this)