3 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
您正在定義一個(gè)函數(shù),該函數(shù)給定n
返回一個(gè)接受參數(shù) x 并返回的函數(shù)x + n
。這稱為高階函數(shù)。它不會(huì)產(chǎn)生錯(cuò)誤,因?yàn)槟鞔_返回另一個(gè)需要參數(shù)的函數(shù)。

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊
x 代表 lambda 表達(dá)式接收的參數(shù),這就是它在“:”之前的原因。
當(dāng)您進(jìn)行plus_2 = make_adder(2)
調(diào)用時(shí),lambda 表達(dá)式將 n 替換為函數(shù) (2) 的參數(shù),因此現(xiàn)在plus_2
等于lambda x: x + 2
。當(dāng)你調(diào)用plus_2(5)
lambda 表達(dá)式求值時(shí),將 x 替換為函數(shù)參數(shù) (5),所以結(jié)果是 5 + 2 = 7;

TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
在下面的行中:
plus_2 = make_adder(2)
我們將整數(shù)對(duì)象綁定2
到n
.
之后plus_2
使用參數(shù)調(diào)用when :
plus_2(5)
執(zhí)行表達(dá)式時(shí)5
將綁定到整數(shù)對(duì)象。x
lambda
這是運(yùn)行時(shí)執(zhí)行流程。由于整個(gè)過程沒有歧義或錯(cuò)誤,程序運(yùn)行得很好并輸出7
.
現(xiàn)在,回答您的問題:變量x
表示plus_2()
根據(jù)您的命名傳遞給的任何值。
添加回答
舉報(bào)