我採取了函數式編程語言當然,我有困難「作爲參數的函數」不能理解
fun n_times(f , n , x) =
if n=0
then x
else f (n_times(f , n - 1 , x))
fun double x = x+x;
val x1 = n_times(double , 4 , 7);
the value of x1 = 112
的上下文中理解遞歸「功能參數」遞歸這加倍「X」' N」倍,以便7一倍4倍= 112
我可以理解簡單的遞歸模式,如在一個列表中,或添加號碼‘的力量’的功能,但我不理解此功能如何‘通過調用本身n_times’求值?可以提供該功能如何工作的解釋?
我已經標記使用Scala爲我修這門課程來提高我的斯卡拉的理解(連同函數式編程),我認爲這是一個常見的模式,可能可以提供意見?
我想這似乎太明顯了。嘗試使用重寫方法(也許使用'n'爲3而不是4)來重寫頂層調用和每次遞歸調用,並將實際參數值替換爲對函數體中形式參數的引用。 –