美文网首页
9.函数复合

9.函数复合

作者: 学吉他的袁先生 | 来源:发表于2020-07-28 17:09 被阅读0次

    定义:一种数学概念 f(g(x))

    val add5 = {i: Int -> i + 5} // g(x)
    val multiplyBy2 = {i : Int -> i * 2} // f(x)
    
    fun main() {
        val multiplyBy21 = multiplyBy2(add5(8))
        println(multiplyBy21)
    }
    

    利用扩展函数以及中缀表达式可以这样子改造

    val add5 = {i: Int -> i + 5} // g(x)
    val multiplyBy2 = {i : Int -> i * 2} // f(x)
    
    infix fun <P1, P2, R> Function1<P1, P2>.andThen(function: Function1<P2, R>): Function1<P1,R>{
        return fun(p1: P1): R{
            return function.invoke(this.invoke(p1))
        }
    }
    
    fun main() {
        val multiplyBy21 = multiplyBy2(add5(8))
        println(multiplyBy21)
        val add5AndMultiplyBy2 = add5 andThen multiplyBy2
        add5AndMultiplyBy2(8)
    }
    

    打印
    26
    26

    相关文章

      网友评论

          本文标题:9.函数复合

          本文链接:https://www.haomeiwen.com/subject/lyxqrktx.html