Solution will make use of the following:
Functions (fun)
Parameters using types
Calling functions with 2 parameters
Variables (var)
do statement to create scopes (local variables)
Object manipulation using object destructor {( )}
If/else
Selectors:
Index (array[0])
Range (1 to 10)
Setting default values
Core functions/operators
isEmpty
reduce
map
groupBy
flatten
Remove (-)
Sum (+)
Concatenation (++)
Prepend (>>)