日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python 函数式编程尾递归优化 day16

發(fā)布時(shí)間:2023/12/1 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 函数式编程尾递归优化 day16 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

函數(shù)編程的特征:

1不可變:不用變量保存狀態(tài),不修改變量

#非函數(shù)式 a = 1 def incr_test1():global a#一旦更改全局變量后后面再調(diào)用a就容易亂a += 1return a incr_test1() print(a) def bar():print('from bar') def foo():print('from foo')return bar n = foo() n()

return可以返回任何數(shù)值,包括自己

def hanle():print('form handle')return hanle h = hanle() h()()

?

高階函數(shù):

把函數(shù)當(dāng)做參數(shù)傳給另一個(gè)函數(shù)

返回值包括函數(shù)

兩個(gè)有一個(gè)就是高階函數(shù)

?

尾遞歸優(yōu)化,尾遞歸,函數(shù)最后一步是遞歸函數(shù)

其好處是可以釋放上一層次的內(nèi)存,優(yōu)化運(yùn)行效率

#函數(shù)bar在foo為非尾調(diào)用 def bar(n):return n def foo(x):y = bar(x)return y#函數(shù)bar在foo內(nèi)衛(wèi)非尾調(diào)用 def bar(n):return n def foo():return bar(x)+1 #非尾遞歸 def cal(seq):if len(seq) == 1:return seq[0]head,*tail = seqreturn head+cal(tail) print(cal(range(100)))#尾遞歸 def cal(l):print(l)if len(l) == 1:return l[0]first,second,*args = 1l[0]=first+secondl.pop(1)return cal(l) x=cal([i for i in range(10)]) print(x)

?

轉(zhuǎn)載于:https://www.cnblogs.com/wangleiyifan/p/9278719.html

總結(jié)

以上是生活随笔為你收集整理的python 函数式编程尾递归优化 day16的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。