f([4,12,15,6,11]) = f([12,15,6,11]) (since 4 <= 10) = 144::f([15,6,11]) (since 12 > 10 and 12*12=144) = 144::225::f([6,11]) (since 15 > 10 and 15*15=225) = 144::225::f([11]) (since 6 <= 10) = 144::225::121::f([]) (since 11 > 10 and 11*11=121) = 144::225::121::[] = 144::225::[121] = 144::[225,121] = [144,225,121]Remarks.
Be sure to follow the rules exactly. Do not forget about the [] at the end. The :: operator associates to the right, so x :: y :: z is understood to mean x :: (y :: z).