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,24 +6,28 @@ 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 = []
@ -31,20 +35,23 @@ def map(function, 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
def foldr(function, lst, initial):
acc = initial
for acc in lst:
acc = function(acc, item)
return acc 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