primeiro commit com exercicios de Exercism realizados até esta data
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
from typing import Callable
|
||||
|
||||
|
||||
# return the length of list
|
||||
def length(list: list) -> int:
|
||||
length: int = 0
|
||||
for _ in list:
|
||||
length += 1
|
||||
return length
|
||||
|
||||
|
||||
# append list2 at the end of list1
|
||||
def append(list1: list, list2: list) -> list:
|
||||
new_list: list = []
|
||||
for index, item in enumerate(list1, 0):
|
||||
new_list.insert(index, item)
|
||||
for index, item in enumerate(list2, length(list1)):
|
||||
new_list.insert(index, item)
|
||||
return new_list
|
||||
|
||||
|
||||
def concat(lists: list[list]):
|
||||
new_list: list = []
|
||||
for item_list in lists:
|
||||
new_list = append(new_list, item_list)
|
||||
return new_list
|
||||
|
||||
|
||||
def filter(function: Callable, list_of_items: list):
|
||||
filtered_list: list = []
|
||||
insert_index: int = 0
|
||||
for item in list_of_items:
|
||||
if function(item):
|
||||
filtered_list.insert(insert_index, item)
|
||||
insert_index += 1
|
||||
return filtered_list
|
||||
|
||||
|
||||
def map(function, list_of_items):
|
||||
mapped_list: list = []
|
||||
for index, item in enumerate(list_of_items):
|
||||
mapped_list.insert(index, function(item))
|
||||
return mapped_list
|
||||
|
||||
|
||||
def foldl(
|
||||
function: Callable, list_of_items: list[int | str], initial: int | str
|
||||
) -> int | str:
|
||||
result: int | str = initial
|
||||
if len(list_of_items) == 0:
|
||||
return result
|
||||
for index in range(0, len(list_of_items)):
|
||||
result = function(result, list_of_items[index])
|
||||
return result
|
||||
|
||||
|
||||
def foldr(function: Callable, list_of_items: list, initial: int | str) -> int | str:
|
||||
result: int | str = initial
|
||||
if len(list_of_items) == 0:
|
||||
return result
|
||||
for index in range(len(list_of_items) - 1, -1, -1):
|
||||
result = function(result, list_of_items[index])
|
||||
return result
|
||||
|
||||
|
||||
# reverse the order of the elements in the list
|
||||
def reverse(list_of_items: list) -> list:
|
||||
# not doing this
|
||||
# return list[::-1]
|
||||
reversed_list: list = []
|
||||
for item in list_of_items:
|
||||
reversed_list.insert(0, item)
|
||||
return reversed_list
|
||||
Reference in New Issue
Block a user