def append(list1, list2): a = list(list1) b = list(list2) c = list(a + b) return c """Vráti nový zoznam obsahujúci všetky prvky list1, po ktorých nasledujú všetky prvky list2.""" pass def concat(lists): result = [] for i in lists: result += i return result """Spojí zoznamy obsiahnuté v lists do jedného zoznamu. Sploštenie sa vykoná iba na jednej úrovni; vnorené zoznamy sa ďalej nesplošťujú.""" pass def filter(function, seq): result = [] for i in seq: if function(i) == True: result.append(i) else: continue return result """Vráti nový zoznam s tými prvkami, pre ktoré volanie function(element) vráti True.""" pass def length(seq): a = 0 for i in seq: a += 1 return a """Vráti počet prvkov v zozname.""" pass def map(function, seq): result = [] for i in seq: a = function(seq[i]) result.append(a) return result """Vráti nový zoznam, ktorého prvky vzniknú aplikovaním function(element) na každý prvok pôvodného zoznamu v pôvodnom poradí.""" pass def foldl(function, seq, acc): sum = 0 for i in seq: sum = acc + function(acc, i) return sum """Spracuje prvky zľava doprava. Akumulácia začína hodnotou acc a pri každom prvku sa použije volanie function(accumulator, element).""" pass def foldr(function, seq, acc): sum = 0 for i in reversed(seq): # reversed міняє індекси але не сам список діє лише на 1 крок sum = acc + function(acc, i) return sum """Spracuje prvky sprava doľava. Akumulácia začína hodnotou acc a pri každom prvku sa použije volanie function(accumulator, element).""" pass def reverse(seq): a = [] for i in reversed(seq): a.append(i) return a """Vráti nový zoznam s prvkami v opačnom poradí.""" pass