78 lines
1.1 KiB
Python
78 lines
1.1 KiB
Python
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
|