函数式编程

编程的方法论:

面向过程:把一个大问题分解成若干小问题去解决

def cal(x):
    res=2*x
    res+=1
    return res

函数式编程:函数式=编程语言定义的函数+数学意义的函数,python不是完全意义上的函数式编程,了解即可

def cal(x):
    return 2*x+1

面向对象

注意:一定要区别这两个

def calc(x):
    return(x+1)
print(calc) #输出的是calc的内存地址
print(calc(10)) #加个小括号即是运行这个函数,内存地址里存的值
                #如果没有print,直接calc(10),则没有任何输出
#输出
<function calc at 0x014AD1D8>
11

注意:一定要注意 print(x+1)和 return(x+1)的区别

def calc(x):
    print(x+1)     
    return x+1
calc(10)   #只输出print,不能输出return,没有打印,所以没有任何显示
print(calc(10))
#输出
11
11
11

高阶函数:

1、把函数当做参数传递给另一个
2、返回值中包括函数

def foo(n):
    print(n)
def bar(name):
    print('my name is '+ name)
foo(bar) # 地址
foo(bar('alex'))#函数名加()代表执行这个函数,把函数当做参数传递给另一个函数,bar函数没有返回值,则返回的是none
#输出
<function bar at 0x0380D1D8>
my name is alex
None

返回值可以是函数


def test1():
    print('from test1')
def test2():
    print('from handle')
    return test1()
    # return test1  注意区别,加括号代表运行函数,返回的是运行结果。不加括号代表返回的是地址。
test2()
#输出
from handle
from test1
def bar():
    print('from bar')
def foo():
    print('from foo ')
    return bar #返回值中包括函数
n=foo()
n() #返回值是函数,可以运行
def handle():
    print('from handle')
    return handle
h=handle() #返回值可以是函数,甚至可以是自己
h()
#输出
from foo 
from bar
from handle
from handle
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
 这本书绝不轻易放过每个知识点,全书包含有大量习题,要求你自己实现 Scala 标准库或者 Scalaz 中的既有功能。所以,当你读完本书,做完习题后,虽然你的应用开发能力并不会直接提升,但你会体会到构建函数语言和框架时的难点和取舍,从而增进你的框架开发和语言设计的能力。   ——ThoughtWorks Lead Consultant 杨博   这本书所讲授的,正是基于 Scala 的函数编程基础。基于 Scheme、Haskell 等老牌函数语言的传统教材的问题在于,相关语言的语法和思维方与读者现有的知识体系迥异,容易造成较为陡峭的入门门槛。此外,由于这些语言本身的实际应用机会不多,初学者也难以在实战中获得宝贵的直觉和经验。而在 Scala 的帮助下,这本书并不要求你抛开现有的思维方另起炉灶,它所做的更像是为你现有的思维方添砖加瓦,从而令你如虎添翼。   ——Spark committer from Databricks 连城   尽管函数编程在近十多年用得越来越多,但市面上介绍其高阶特性的书却并不多。这本书在这方面是个重要的补充,它不仅仅面向 Scala 程序员,同样面向用任何编程语言开发的程序员,只要你充满好奇心。   ——挖财网首席架构师 王宏江   “让你洞察计算的本质。”   ——Martin Odersky, Scala的作者   “Scala和Java8开发者的函数编程指南!”   ——William E. Wheeler, TekSystems   “本书向你展示了提升Scala技能的方法和理念,它已超过‘更好的Java’。”   ——Fernando Dobladez, Code54   “里面的练习有些挑战,很有趣,对你在真实世界中使用它很有益。”   ——Chris Nauroth, Hortonworks   “边干边学,而非只是阅读。”   ——Douglas Alan、Eli和Edythe L. Broad,哈佛和麻省理工学院
React是一个用于构建用户界面的JavaScript库。它采用了组件化的开发方,使得开发者可以将界面拆分成独立的、可复用的组件。在React中,函数编程是一种常见的编程,它强调使用纯函数来构建应用。 函数编程是一种编程,它将计算视为数学函数的求值过程。在函数编程中,函数被视为一等公民,可以作为参数传递给其他函数,也可以作为返回值返回。函数编程强调不可变性和无副作用,即函数的执行不会改变外部状态。 在React中,函数编程被广泛应用于组件的开发。使用函数编程的方,我们可以将组件定义为纯函数,接收一些输入参数(称为props),并返回一个描述组件界面的React元素。这种方使得组件的开发更加简洁、可测试和可维护。 函数编程在React中的一些特点包括: 1. 纯函数:组件函数应该是纯函数,即相同的输入应该始终产生相同的输出,而且不应该有副作用。 2. 无状态组件:函数组件通常是无状态的,即它们不会保存任何状态信息,只依赖于传入的props进行渲染。 3. 高阶组件:函数编程可以使用高阶组件(Higher-Order Components)来增强组件的功能,例如添加共享的逻辑或状态管理。 总结一下,React中的函数编程是一种将组件定义为纯函数的开发方,它强调不可变性和无副作用,使得组件的开发更加简洁、可测试和可维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值