From 25b06bd8d6b3a13aac0f5b251a186d9efea90c70 Mon Sep 17 00:00:00 2001 From: vafan Date: Thu, 1 Oct 2026 12:01:14 +0000 Subject: [PATCH] l --- fullu_2.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ u2/list_ops.py | 24 +++++++++++++++++---- 2 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 fullu_2.py diff --git a/fullu_2.py b/fullu_2.py new file mode 100644 index 0000000..0cf7b7d --- /dev/null +++ b/fullu_2.py @@ -0,0 +1,57 @@ +def append(list1, list2): + result = [] + for item in list1 : + result = result + [item] + for item in list2 : + result = result + [item] + return result +def concat(lists): + result = [] + for sublist in lists: + result = append(result, sublist) + return result + + +def filter(function, list): + result = [] + for item in list: + if function(item): + result += [item] + return result + + +def length(list): + count = 0 + for _ in list: + count += 1 + return count + + +def map(function, list): + result = [] + for item in list: + result += [function(item)] + return result + + +def foldl(function, list, initial): + accumulator = initial + for item in list: + accumulator = function(accumulator, item) + return accumulator + + +def foldr(function, list, initial): + accumulator = initial + index = length(list) - 1 + while index >= 0: + accumulator = function(accumulator, list[index]) + index -= 1 + return accumulator + + +def reverse(list): + result = [] + for item in list: + result = [item] + result + return result \ No newline at end of file diff --git a/u2/list_ops.py b/u2/list_ops.py index c41bf94..43575bd 100644 --- a/u2/list_ops.py +++ b/u2/list_ops.py @@ -11,9 +11,11 @@ def concat(lists): result = append(result, item) return result def filter(function, list): + res = [] - if function(item) : - res = res + item + for item in list: + if function(item) : + res = res + [item] return res def length(list) : counter = 0 @@ -23,6 +25,20 @@ def length(list) : def map(function, list) : res = [] for item in list: - res = [function(item)] + res + res = res + [function(item)] return res - \ No newline at end of file +def foldl(function, list, initial): + final = initial + for item in list: + final = function(final, item) + return final +def foldr(function, list, initial): + final = initial + for item in reverse(list): + final = function(final, item) + return final +def reverse(list): + result = [] + for item in list: + result = [item] + result + return result \ No newline at end of file