【Golang】Go语言编程思想(二):函数式编程

ops/2024/12/12 3:48:52/

函数式编程

函数与闭包

支持函数式编程的语言当中,函数是一等公民,参数、变量、返回值都可以是函数。

以 adder 为例,下例实现了一个函数式编程:

package mainimport "fmt"func adder() func(int) int {sum := 0return func(v int) int {sum += vreturn sum}
}func main() {a := adder()for i := 0; i < 10; i++ {fmt.Printf("1 + 2 + ... + %d = %d\n", i, a(i))}
}

结果为:

1 + 2 + ... + 0 = 0
1 + 2 + ... + 1 = 1
1 + 2 + ... + 2 = 3
1 + 2 + ... + 3 = 6
1 + 2 + ... + 4 = 10
1 + 2 + ... + 5 = 15
1 + 2 + ... + 6 = 21
1 + 2 + ... + 7 = 28
1 + 2 + ... + 8 = 36
1 + 2 + ... + 9 = 45

在函数体当中定义的 sum 就是一个闭包的概念:
在这里插入图片描述
上述整体被称作闭包,sum 作为局部变量会被保存在闭包当中。

正统的函数式编程写法如下:

type iAdder func(int) (int, iAdder)func adder2(base int) iAdder {return func(v int) (int, iAdder) {return base + v, adder2(base + v)}
}

http://www.ppmy.cn/ops/141153.html

相关文章

华纳云:哪些行业会用到大硬盘存储服务器?

大硬盘存储服务器被广泛应用于需要大量数据存储、处理和管理的多个领域。以下是一些典型的应用场景&#xff1a; 1. 数据中心和云计算&#xff1a;数据中心需要为各种服务提供后端支持&#xff0c;包括云存储、虚拟化、数据库管理和备份恢复等。大数据硬盘服务器能够提供必要的…

评估大语言模型(LLM)在分子预测任务能够理解分子几何形状性能

摘要 论文地址&#xff1a;https://arxiv.org/pdf/2403.05075 近年来&#xff0c;机器学习模型在各个领域越来越受欢迎。学术界和工业界都投入了大量精力来提高机器学习的效率&#xff0c;以期实现人工通用智能&#xff08;AGI&#xff09;。其中&#xff0c;大规模语言模型&a…

thinkphp框架使用command实现队列功能

背景 ThinkPHP命令行工具持久化运行的应用场景包括&#xff1a;队列处理&#xff0c;定时任务、后台服务等。本次实战是实现队列处理数据。 步骤1 application目录command.php增加 return [app\admin\command\Crud,app\admin\command\Menu,app\admin\command\Install,app\a…

在GITHUB上传本地文件指南(详细图文版)

这份笔记简述了如何在GITHUB上上传文件夹的详细策略。 既是对自己未来的一个参考&#xff0c;又希望能给各位读者带来帮助。 详细步骤 打开目标文件夹&#xff08;想要上传的文件夹&#xff09; 右击点击git bash打开 GitHub创立新的仓库后&#xff0c;点击右上方CODE绿色按…

【LLMs】用LM Studio本地部署离线大语言模型

文章目录 一、下载LM Studio二、下载大语言模型1. 查看模型介绍2. 点击模型文件进行下载2.1 完整下载2.2 部分下载 三、加载模型1. 打开LM Studio图形化界面&#xff0c;点击**My Models**2. 然后&#xff0c;点击“...”&#xff0c;选择“change”&#xff0c;选择刚下载好的…

python进阶-05-利用Selenium来实现动态爬虫

python进阶-05-利用Selenium来实现动态爬虫 一.说明 这是python进阶部分05&#xff0c;我们上一篇文章学习了Scrapy来爬取网站&#xff0c;但是很多网站需要登录才能爬取有用的信息&#xff0c;或者网站的静态部分是一个空壳&#xff0c;内容是js动态加载的,或者人机验证&…

基于 SSM 的个性化商铺系统:先进架构保障系统稳定性

摘 要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;个性化商铺系统也不例外&#xff0c;但目前国内的市场仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&am…

自动驾驶技术——HSL

在自动驾驶技术中&#xff0c;HSL颜色映射&#xff08;Hue, Saturation, Lightness&#xff0c;即色相、饱和度、明度&#xff09;发挥着重要作用&#xff0c;尤其是在车道线检测方面。以下是关于自动驾驶中HSL颜色映射的具体用途和优势的详细解释&#xff1a; 一、HSL颜色映射…