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

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

开发者学堂课程【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.授课顺序

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

相关文章
|
5月前
|
安全 Java Go
Go语言基础与面向对象编程概念
【2月更文挑战第10天】本文旨在介绍Go语言的基本特性和面向对象编程(OOP)的核心概念,以及如何将这两者结合起来。通过Go语言的结构体和方法实现封装、继承和多态,让读者深入理解面向对象编程在Go中的实现方式。文章适合对Go语言感兴趣的初学者和想要了解OOP在Go中如何应用的开发者。
|
4月前
|
存储 算法 编译器
C++ 函数式编程教程
C++ 函数式编程学习
|
5月前
|
设计模式 Java Go
Go语言高级面向对象编程技巧与实战案例
【2月更文挑战第10天】本文将深入探讨Go语言中的高级面向对象编程技巧,并通过实战案例展示如何应用这些技巧解决实际问题。我们将了解如何使用设计模式、测试与调试面向对象程序、性能优化与内存管理等高级话题,以提升Go语言编程的水平和代码质量。
|
存储 自然语言处理 编译器
GO语言基础语法探究:简洁高效的编程之道 1
GO语言基础语法探究:简洁高效的编程之道
106 0
|
安全 Go C语言
GO语言基础语法探究:简洁高效的编程之道 3
GO语言基础语法探究:简洁高效的编程之道
105 0
|
存储 Java 编译器
GO语言基础语法探究:简洁高效的编程之道2
GO语言基础语法探究:简洁高效的编程之道
|
设计模式 前端开发 JavaScript
前端函数式编程浅析
函数式编程的概念与应用
90 0
|
Java Scala 开发者
函数式编程几个重要概念|学习笔记
快速学习函数式编程几个重要概念。
函数式编程几个重要概念|学习笔记
|
编译器 Python Windows
Python编程基础:面向对象编程
巩固Python面向对象编程一些基础知识,学习有关类的创建使用,以及类的属性方法使用等一些基础操作。
82 0
Python编程基础:面向对象编程
|
Java API
函数式编程概念和应用
函数式编程的核心要素:传入参数,执行逻辑,返回值,也可以没有返回值。函数式的编程风格侧重描述程序的执行逻辑,不是执行过程。
222 0
函数式编程概念和应用