我正在学习 Kotlin,出于对它的热爱,我无法直接得到产量/序列。有人可以更正我的代码吗?
fun Sequence<Int>.mapIterable(transform: (Int)->Int) = sequence {
this.forEach({ x -> yield(transform(x)) })
}
fun Sequence<Int>.product(): Int {
return this.reduce({ acc,x -> acc*x })
}
infix fun Int.powerof(exponent: Int): Int {
return (1..exponent).mapIterable({ x -> this }).product()
}
fun main() {
println(2 powerof 10)
}
正如@Sweeper建议的:
fun Sequence<Int>.product(): Int {
return this.reduce({ acc,x -> acc*x })
}
infix fun Int.powerof(exponent: Int): Int {
return (1..exponent).asSequence().map({ this }).product()
}
fun main() {
println(2 powerof 10)
}