fun Collection.powerset(): Set = powerset(this, setOf(setOf())) private tailrec fun powerset(left: Collection, acc: Set): Set = when { left.isEmpty() -> acc else ->powerset(left.drop(1), acc + acc.map { it + left.first() }) } fun main() { val list1 = listOf(1,2,3,4,5,6,7,8) val list2 = listOf(1,2,3) val a = list1.powerset() println(a) println(a.size) val b = list2.powerset() println(b) } github...
ํ์ฅํจ์ info๋ฅผ ํตํด ํธ์ถ ํด๋์ค๋ช ๊ณผ ๋ฉ์๋๋ช ์ถ๋ ฅ class PopcornPopper{ fun on() { info() } } fun T.info(): T { val res = this Throwable().stackTrace[1].apply { println("${generateTag()} ${generateMessage(res)}") } return this } fun T.info(msg: () -> Any): T { Throwable().stackTrace[1].apply { println("${generateTag()} ${generateMessage(msg())}") } return this } fun StackTraceElement.generateTag() = className.subst..