函数式编程基础介绍|学习笔记

简介: 快速学习函数式编程基础介绍。

开发者学堂课程【Scala 核心编程-基础函数式编程基础介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8926


函数式编程基础介绍

 

目录

一、函数编程的内容

二、函数式编程基础

三、函数式编程高级

四、函数式编程的授课顺序

 

一、函数编程的内容

1.函数式编程基础

2.函数式编程高级

 

二、函数式编程基础

1.函数定义/声明

2.函数运行机制

3.递归

(1)递归介绍

推荐编程者使用递归来解决问题。当使用递归解决问题完了之后,它的底层仍然会进行优化。

(2)递归可以解决什么问题?

①递归是算法基础

②邮差问题

③最短路径问题

④背包问题

⑤迷宫问题:回溯

只要涉及到算法或者是实际应用的问题,递归都不必不可少。

(3)之前学过的大量应用到递归的例子

二差数、广义表、散列

(4)递归的作用

①递归的作用

从编程的原理来说,所有的东西都可以用递归来解决;在设计者眼里,现实中的递归就是不停地重复,重要的是重复的规律该如何找到。

②汉诺塔问题

有三根高度相同的柱子和一些大小及颜色不同的圆盘,三根柱子分别为起始柱 A、辅助柱 B 及目标柱 C。

如果是由 A 移动到 C。

对于一个人来说,如果是5个盘子是可以绕过来的。如果是64个盘子,人就几乎是完成不了了。

但是这两个例子的逻辑是一样的。

4.过程

5.惰性函数和异常的处理

异常的处理也是用到相关的函数或者是方法。

 

三、函数式编程高级

1.值函数(函数字面量)

2.高阶函数

3.闭包

4.应用函数

5.柯里化函数,抽象控制

 

四、函数式编程的授课顺序

1.在 scala 中,函数式编程和面向对象编程融合在一起,学习函数编程需要学习 oop 的知识,同样学习 oop 需要函数式编程的基础。

(1)为什么函数式编程和面向对象编程融合在一起

函数式编程原生是以 Java 为根基形成的。Java 是 oop 的东西。

只是设计者马丁奥德斯基觉得 oop 虽然很好,但是他还是想把函数融入到 oop 里面。

2.两者的关系关系

一旦在 oop 里面插入了函数,就会出现下图情况

image.png

情况就是面向对象里面拥有函数式编程的内容,函数式编程里面也会有面向对象编程的影子,这样就会造成当在讲函数编程的时候突然会用到 opp,反过来在讲面向对象的时候,就要用到函数的内容。

所以就可以把函数式编程和面向对象编程公用的东西讲解完,讲解完之后在讲解面向对象编程,如何再讲解函数式编程。

3.授课顺序

函数式编程->面向对象编程->函数式编程高级

相关文章
|
8月前
|
安全 Java Go
Go语言基础与面向对象编程概念
【2月更文挑战第10天】本文旨在介绍Go语言的基本特性和面向对象编程(OOP)的核心概念,以及如何将这两者结合起来。通过Go语言的结构体和方法实现封装、继承和多态,让读者深入理解面向对象编程在Go中的实现方式。文章适合对Go语言感兴趣的初学者和想要了解OOP在Go中如何应用的开发者。
|
5月前
|
Python
Python函数式编程:你真的懂了吗?理解核心概念,实践高阶技巧,这篇文章带你一次搞定!
【8月更文挑战第6天】本文介绍了Python中的函数式编程,探讨了高阶函数、纯函数、匿名函数、不可变数据结构及递归等核心概念。通过具体示例展示了如何利用`map()`和`filter()`等内置函数处理数据,解释了纯函数的一致性和可预测性特点,并演示了使用`lambda`创建简短函数的方法。此外,文章还强调了使用不可变数据结构的重要性,并通过递归函数实例说明了递归的基本原理。掌握这些技巧有助于编写更清晰、模块化的代码。
55 3
|
7月前
|
存储 算法 编译器
C++ 函数式编程教程
C++ 函数式编程学习
|
8月前
|
C++
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
|
8月前
|
Java 程序员 数据处理
探索编程范式:面向对象编程与函数式编程的比较与取舍
本文将探讨面向对象编程(OOP)和函数式编程(FP)两种主流的编程范式,并比较它们在代码组织、可复用性、并发性和代码风格等方面的特点。通过深入了解它们的优势和不足,读者可以更好地选择适合自己项目需求的编程范式。
282 1
|
Java Scala 开发者
函数式编程几个重要概念|学习笔记
快速学习函数式编程几个重要概念。
函数式编程几个重要概念|学习笔记
|
编译器 Python Windows
Python编程基础:面向对象编程
巩固Python面向对象编程一些基础知识,学习有关类的创建使用,以及类的属性方法使用等一些基础操作。
96 0
Python编程基础:面向对象编程
|
Java API
函数式编程概念和应用
函数式编程的核心要素:传入参数,执行逻辑,返回值,也可以没有返回值。函数式的编程风格侧重描述程序的执行逻辑,不是执行过程。
236 0
函数式编程概念和应用
|
存储 PHP 开发者
面向对象基础总结|学习笔记
快速学习面向对象基础总结
|
存储 架构师 程序员
编程范式(三):函数式编程
编程范式(三):函数式编程
334 0