每天学习一点Scala01_函数式编程

  1. Scala是什么?

    Scala是一种函数式编程语言。
    Scala是编程语言中的"凯迪拉克"。

  2. 什么是函数式编程?
    1. 将函数作为程序的“一类”公民。
    2. 函数具有与变量和值同样的地位。
    3. 函数式编程允许像使用一个变量一样使用函数。
    4. 函数式编程允许将一个函数作为参数传递给另一个函数。
    5. 函数式编程允许另一个函数将一个函数作为返回值返回。
    6. 函数式编程允许在任何地方定义函数,包括在另一个函数内定义一个函数。
    7. 函数式编程允许使用一个匿名函数作为参数传递给另一个函数。
    8. 函数式编程中的函数是可组合的,可用来解决复杂的问题(将复杂问题分解为小的简单问题)。例如,有两个函数:
      f(x) = x*2;
      g(x) = x+2;
      将这两个函数组合为一个函数:
      h(x) = f(g(x)) = f(x+2) = (x+2)*2
    9. 函数式编程中,一切皆表达式(返回一个值)。例如,在Scala中,if-else控制结构就是一个表达式,它返回一个值。
时间: 2024-11-09 07:06:17

每天学习一点Scala01_函数式编程的相关文章

Python学习十一:函数式编程

这也是我第一接触函数式编程这个概念,并不知道是干嘛的?好奇心驱使下学习了一下,有了大致的了解: 函数式编程自己的理解:就跟说话一样写程序,这个程序写出来可以直白的告诉人是要干嘛的. 以下是我读到的关于函数式编程的文章的描述: 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数![1] 函数式编程的准则:不依赖于外部的数据,而且也不改变外部数据的值,而是返回一个新的值给你.[2] 函数式编程的理念:把函数当成变量来用,关注于描述问题而不是怎么实现,这样可以让代码更易

python学习笔记(四) - 函数式编程

一. 高阶函数 高阶函数:把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式 def add(x, y, f): return f(x) + f(y) print add(-5, 6, abs) # 11 二.返回函数 aaa 三.匿名函数 aaa 四.装饰器 aaa 五.偏函数 aaa

Clojure学习笔记(二)——函数式编程

定义 “函数式编程”是一种编程范式(programming paradigm),即如何编写程序的方法论.主要思想是把运算过程尽量写成一系列嵌套的函数调用. 举例来说,现在有这样一个数学表达式: (1 + 2) * 3 - 4 传统的过程式编程,可能这样写: var a = 1 + 2; var b = a * 3; var c = b - 4; 函数式编程要求使用函数,我们可以把运算过程定义为不同的函数,然后写成下面这样: var result = subtract(multiply(add(1

python学习笔记011——函数式编程

1 函数式编程 面向对象 ,面向过程 ,函数式编程 侧重函数的作用,注重函数结果的传递 函数可以被赋值,也可以接受其他的值 2 函数式编程特点 1.函数是一等公民 与其他变量一样,可以赋值和被赋值,可以作为参数传递 2.只用表达式不用语句 表达式是一个单纯的运算过程,总有返回值,语句是执行某种操作,没有返回值.即每一步运算要单纯,有明确结果. 函数式编程是为运算产生的而不是IO 3. 没有副作用 尽量不使用全局内容也不修改系统变量 4.引用透明 函数运行结果因为参数而发生变化,而不是因为系统的状

Python学习笔记五函数式编程(一)

参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 函数式编程 一.高阶函数 所谓高阶函数就是函数可以以另外一个函数作为参数. 首先需要了解在Python中变量是可以指向函数的,如下例子: >>> abs(-5) 5 >>> f=abs >>> f <built-in function abs> >&

Python学习笔记五函数式编程(二)

参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 一.返回函数 高阶函数除了可以接受函数作为参数之外,还可以把函数作为返回值. 通常我们也可以通过以下方式求和: def calc_sum(*args): sum=0 for n in args: sum=sum+n return sum 但如果有一种情况 ,不需要立刻得出求和结果,而是在后续的代码中根据需要再计

Python的函数式编程,从入门到?放弃?

转:http://python.jobbole.com/84927/ 很早以前就听说过了函数式编程,印象中是一种很晦涩难懂的编程模式,但却一直没有去进行了解. 恰好这周组内的周会轮到我主持,一时也没想到要分享什么.灵光一闪,就选定函数式编程这个主题吧,反正组里的同事都没有学过,只需要讲解入门方面的知识就好,也正好可以借这个机会逼迫自己去学习下这种新的编程方式. 经过初步了解,发现支持函数式编程的语言挺多的,除了像Lisp.Scheme.Haskell.Erlang这样专用的函数式编程语言,我们常

从闭包谈函数式编程

记得开始学习golang的时候,boss给我发了一篇paper,讲的是函数式编程,那个时候看了一遍,懵懵懂懂,只有一个感觉,函数式编程怎么好像讲的都是数学公式(说句实话,我那个时候还真不理解boss为什么给我发那篇paper,只是想反正多看点东西总不会错)?最近一段时间,go用的比较多,业务逻辑让我思考了很多问题,虽然go并非函数式语言,但却支持了很多函数式的概念,让编程变得简单.当然,在写代码的过程中,我就很怀疑,使用了函数式编程会不会导致运行效率变低? 这篇文章就从几方面学习函数式编程(by

给 JavaScript 开发者讲讲函数式编程

本文译自:Functional Programming for JavaScript People 和大多数人一样,我在几个月前听到了很多关于函数式编程的东西,不过并没有更深入的了解.于我而言,可能只是一个流行词罢了.从那时起,我开始更深地了解函数式编程并且我觉得应该为那些总能听到它但不知道究竟是什么的新人做一点事情. 谈及函数式编程,你可能会想到它们:Haskell 和 Lisp,以及很多关于哪个更好的讨论.尽管它们都是函数式语言,不过的确有很大的不同,可以说各有各的卖点.在文章的结尾处,我希