-3
我無法弄清楚如何兩個遞歸(myMaximumBy)一起工作,我試圖在紙上繪製圖表,但我卡住了。例如,myMaximumBy比較[1,5,2,4,3]有人可以解釋下面的代碼是如何工作的嗎?
myMaximumBy :: (a -> a -> Ordering) -> [a] -> a
myMaximumBy _ (x:[]) = x
myMaximumBy f (x:xs) = if (f x (myMaximumBy f xs)) == GT then x else (myMaximumBy f xs)
「這個定義等同於你的」,不同的是它僅需要調用'F'的線性數,而OP的實現具有調用的最壞情況的指數數'F' ... –