list data structure for function programming