package mainimport "fmt"func adder() func(int) int {//自由变量sum := 0//函数体,v 是局部变量return func(v int) int {sum += vreturn sum}
}//正统函数式编程
type iAdder func(int) (int, iAdder)func adder2(base int) iAdder {return func(v int) (int, iAdder) {return base + v, adder2(base + v)}
}func main() {/*a := adder()for i := 0; i < 10; i++ {fmt.Println(a(i))}*/a := adder2(0)for i := 0; i < 10; i++ {var s ints, a = a(i)fmt.Println(s)}
}

go 闭包:

package mainimport ("fmt""strings""io""bufio"
)func fibonacci() func() int {a, b := 0, 1return func() int {a, b = b, a + breturn a}
}//函数类型,是个类型就能实现接口
type intGen func() int//函数也能实现read接口,作为接收者
//f.read() 或者 read(f) ???
func (g intGen) Read(p []byte) (n int, err error) {next := g()if next > 10000 {return 0, io.EOF}s := fmt.Sprintf("%d\n", next)return strings.NewReader(s).Read(p)
}func printFileContents(reader io.Reader) {scaner := bufio.NewScanner(reader)for scaner.Scan() {fmt.Println(scaner.Text())}
}func main() {f := fibonacci()fmt.Println(f()) // 1fmt.Println(f()) // 1fmt.Println(f()) // 2fmt.Println(f()) // 3fmt.Println(f()) // 5fmt.Println(f()) // 8fmt.Println(f()) // 13printFileContents(f)
}

31.go 函数式编程相关推荐

  1. 写 Python 代码不可不知的函数式编程技术

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|深度学习这件小事 本文对 Python 中的函数式编程技 ...

  2. python采用函数式编程模式吗_Python函数与函数式编程

    1 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创 ...

  3. 过程或函数的副作用是_Python函数和函数式编程(两万字长文警告!一文彻底搞定函数,建议收藏!)...

    Python函数和函数式编程 函数是可重用的程序代码段,在Python中有常用的内置函数,例如len().sum()等. 在Pyhon模块和程序中也可以自定义函数.使用函数可以提高编程效率. 1.函数 ...

  4. Java如何支持函数式编程?

    简介:Java是面向对象的语言,无法直接调用一个函数.Java 8开始,引入了函数式编程接口与Lambda表达式,便于开发者写出更少更优雅的代码.什么是函数式编程?函数式编程的特点是什么?本文通过代码 ...

  5. Python修饰器的函数式编程

    转载自:https://coolshell.cn/articles/11265.html 加了一些自己的注释. Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其 ...

  6. 函数式编程里的Materialization应该翻译成什么?

    Materialization是函数式编程里的一个专业术语, 用于特指函数式编程中查询被实际执行并生成结果的这一过程. 首先, 搜了一下中文资料, 暂时没有对该词的中文翻译,  CSDN\博客园\阿里 ...

  7. C#函数式编程之序列

    过了许久的时间,终于趁闲暇的时间来继续将函数式编程这个专辑连载下去,这段时间开头是为IOS这个新方向做准备,将OC的教程写成了SWIFT版,当然我个人是支持Xamarin,但是我一般会先掌握原生态的开 ...

  8. Js中函数式编程的理解

    函数式编程的理解 函数式编程是一种编程范式,可以理解为是利用函数把运算过程封装起来,通过组合各种函数来计算结果.函数式编程与命令式编程最大的不同其实在于,函数式编程关心数据的映射,命令式编程关心解决问 ...

  9. JavaScript 中的函数式编程实践

    为什么80%的码农都做不了架构师?>>>    基础知识 函数式编程简介 说到函数式编程,人们的第一印象往往是其学院派,晦涩难懂,大概只有那些蓬头散发,不修边幅,甚至有些神经质的大学 ...

  10. java函数式编程例子_java函数式编程Lambda表达式的示例(一)

    函数式编程是时下比较流行的编程方式了,很多新兴的编程语言都对函数式编程有了比较好的支持,她有别于传统的命令式编程,可以将函数(执行代码的过程)作为参数进行传递.JAVA也意识到了函数式编程的重要性,在 ...

最新文章

  1. mysql 0x80004005 unable to connect to any of the specified mysql hosts
  2. R语言使用ggplot2包使用geom_violin函数绘制分组小提琴图(配置显示中位数、分位数)实战
  3. android 编译 oserror,Android-4.4.2 编译出错 OSError: [Errno 2] No such file or directory
  4. PHP文件头部(header)解释
  5. Linux 基础命令——比较两个文件内容的不同
  6. 访问SAP时提示报错SAP GUI for Windows 720窗口
  7. 简单了解Python网络爬虫
  8. 1、webpack入门例子。
  9. 前端传json对象后台接收
  10. 安卓系统和安卓服务器地址,给安卓应用配置服务器地址
  11. bind服务器响应,DNS和Bind服务器
  12. SWUN 1423 - 伊邪那美
  13. 小程序typescript_16天:从概念到实现的TypeScript应用程序
  14. 【iOS开发】iOS系统更新到10.3以上无法下载企业应用
  15. 量子力学奇妙之旅-从相对论下薛定谔方程到量子场论
  16. 08-Oct-2010
  17. 仙山瑶池,灵水神泉”的美誉
  18. RTC保存年份不正确的问题排查及解决
  19. CS61B学习笔记——proj2 gitlet的实现
  20. unity urp 实现泰森多边形Voronoi扰动

热门文章

  1. redis 字符串基本操作
  2. Servlet+Ajax实现搜索智能提示
  3. stm32GPIO8种模式
  4. Sturts2 三种开发模式 (转)
  5. vmware12安装vmtools
  6. 在中心交换机前加入多wan口路由,华为中心交换机的学习
  7. Myeclipse中JSP页面快捷键注释失效解决方法
  8. 学写压缩壳心得系列之一 熟悉概念,未雨绸缪
  9. Windows设计师:多核芯片要求全新操作系统
  10. [Joomla] SQL加入Joomla用户