zoukankan      html  css  js  c++  java
  • scala函数式编程

    学习了一些scala的基础语法http://twitter.github.io/scala_school/zh_cn/index.html,

    尝试一下scala的函数式编程。

    用函数式编程如何实现:sum(f, a,b)=

    s = 0

    for i in [a, b]

      s+=f(i)

    return s

    这是命令式编程,c/c++的伪代码。

    1. 实现1.

    1 def sum(f:Int=>Int, a:Int, b:Int):Int = {
    2     if(a > b) 0 else f(a) + sum(a+1, b)
    3 }

    sum(x=>x, 1, 5)

    sum(x=>x*x*x, 1, 5)

    2. 实现2

    这里有三个参数,f, a, b.是否可以将sum抽象成一个输入是f,输出是g: (Int, Int)=>Int的函数呢?然后用生成的g作用到a, b上?

    1 def sum(f:Int=>Int):(Int, Int)=>Int = {
    2   def func(a:Int, b:Int):Int = {
    3       if(a > b) 0 else f(a)+func(a+1, b)          
    4   } 
    5 func
    6 }

    sum(x=>x)(1,5)

    sum(x=>x*x*x)(1,5)

    将f抽象出来了。

  • 相关阅读:
    βVAE学习
    条件GAN学习
    epoll的事件的状态
    RST报文产生的情况
    SIGPIPE信号产生原因
    methods事件
    for列表渲染
    if条件渲染
    data数据
    vue的简单上手
  • 原文地址:https://www.cnblogs.com/Torstan/p/4156161.html
Copyright © 2011-2022 走看看