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).