avp26/u2/list_ops.py

57 lines
990 B
Python

def append(list1, list2):
result = []
for item in list1:
result += [item]
for item in list2:
result += [item]
return result
def concat(lists):
result = []
for sublist in lists:
result = append(result, sublist)
return result
def filter(function, lst):
result = []
for item in lst:
if function(item):
result += [item]
return result
def length(lst):
result = 0
for _ in lst:
result += 1
return result
def map(function, lst):
result = []
for item in lst:
result += [function(item)]
return result
def foldl(function, lst, initial):
acc = initial
for item in lst:
acc = function(acc, item)
return acc
def reverse(lst):
result = []
for item in lst:
result = [item] + result
return result
def foldr(function, lst, initial):
acc = initial
for item in reverse(lst):
acc = function(acc, item)
return acc