def append(list1, list2): result = [] for element in list1: result.append(element) for element in list2: result.append(element) return result def concat(lists): result = [] for current_list in lists: for element in current_list: result.append(element) return result def filter(function, seq): result = [] for element in seq: if function(element): result.append(element) return result def length(seq): count = 0 for element in seq: count += 1 return count def map(function, seq): result = [] for element in seq: result.append(function(element)) return result def foldl(function, seq, acc): for element in seq: acc = function(acc, element) return acc def foldr(function, seq, acc): index = length(seq) - 1 while index >= 0: acc = function(acc, seq[index]) index -= 1 return acc def reverse(seq): result = [] index = length(seq) - 1 while index >= 0: result.append(seq[index]) index -= 1 return result