val square = fn x => x*x; fun valueAtTwo f = f 2; fun sumOfValues f [] = 0 | sumOfValues f (h::t) = (f h)+(sumOfValues f t); fun add a b = a+b; val addThree = add 3; val sumOfSquares = sumOfValues square; val sumOfCubes = sumOfValues (fn x => x*x*x); fun sumOfValues f lst = (foldr (fn (element,running)=>element+running) 0 (map f lst)); fun sumOfValues f lst = (foldr (op+) 0 (map f lst)); fun sumOfValues f lst = (foldr (fn (element,running)=>(f element)+running) 0 lst); fun readNormalDecimalRepresentationOfAnInteger digits = (foldl (fn (element,running)=>element+10*running) 0 digits); fun reversedDecimal digits = (foldr (fn (element,running)=>element+10*running) 0 digits); fun reverseList values = (foldl (fn (element,running)=>element::running) [] values); fun ourVeryOwnMap f values = (foldr (fn (element,running)=>(f element)::running) [] values);