u2
This commit is contained in:
parent
759cd5bea1
commit
13453db2be
77
u2/list_ops.py
Normal file
77
u2/list_ops.py
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
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
|
||||||
Loading…
Reference in New Issue
Block a user