def append(list1, list2): result = [] for item in list1 : result = result + [item] for item in list2 : result = result + [item] return result def concat(lists): result = [] for sublist in lists: result = append(result, sublist) return result def filter(function, list): result = [] for item in list: if function(item): result += [item] return result def length(list): count = 0 for _ in list: count += 1 return count def map(function, list): result = [] for item in list: result += [function(item)] return result def foldl(function, list, initial): accumulator = initial for item in list: accumulator = function(accumulator, item) return accumulator def foldr(function, list, initial): accumulator = initial index = length(list) - 1 while index >= 0: accumulator = function(accumulator, list[index]) index -= 1 return accumulator def reverse(list): result = [] for item in list: result = [item] + result return result