1
我在我的任務中得到了這個定義,我無法完全弄清楚它是如何運作的以及它的功能。Typescript - 這是一個撰寫語法嗎?
這是一個組合語法嗎?
f
是一般函數沒有具體的定義。 主要是我不明白什麼是x
。
const invokeN1 = (f, n) =>
n === 0 ? (x) => x : (x) => f(invokeN1(f,n-1)(x))
我在我的任務中得到了這個定義,我無法完全弄清楚它是如何運作的以及它的功能。Typescript - 這是一個撰寫語法嗎?
這是一個組合語法嗎?
f
是一般函數沒有具體的定義。 主要是我不明白什麼是x
。
const invokeN1 = (f, n) =>
n === 0 ? (x) => x : (x) => f(invokeN1(f,n-1)(x))
你在這裏給出的是一個調用模式/回調。 invokeN1(func,n-1)
將返回一個變量的函數。
打破它:
(f,n)=>whatever
這意味着invokeN1將接受兩個變量的函數,由「無論」的判斷結果。讓我們看一下:
n===0?
檢查的invokeN1
的第二個參數 - 這需要有相同的類型和值0。現在,如果是0返回:
(x) => x
這所返回什麼 - 另一種調用模式! 這表示1個參數返回相同參數的函數。請注意0是這裏的函數簽名,並且x
將返回。
如果n
不是0,該怎麼辦?
(x) => f(invokeN1(f,n-1)(x))
另一種調用模式 - 再次,函數接受一個參數,表示爲x
,並返回在右的東西,你應該能夠告訴遞歸什麼,會做,對不對?