# Haskell, 157 * 0.9 = 141.3 bytes f#[]=[];f#(a:b)=f a:f#b n f x 1=f x;n f x i=f$n f x(i-1) f!x=f x r 0=[];r i=r(i-1)++[i] f g x[]=x;f g x(a:b)=g(f g x b)a f%(a,b)|a==b=[f b]|1<2=f a:f%(a+1,b) No loops, just recursion. `#` is map: `(*2) # [1,2,3]` -> `[2,4,6]` `n` is nest: `n (*2) 3 4` -> `48` `!` is apply: `(*2) ! 7` -> `14` `r` is range: `r 4` -> `[1,2,3,4]` `f` is fold: `f (+) 0 [1,2,3,4]` -> `10` `%` is table: `(*2) % (2,4)` -> `[4,6,8]`