Update u2/list_ops.py

This commit is contained in:
Roman Dmytruk 2026-10-01 14:32:33 +00:00
parent 4133dc0af9
commit a62a61ecc8

View File

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