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 = [] if lists == []: return [] for i in lists: if i != []: 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 = [] if seq == []: return [] for i in seq: a = function(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): if seq == []: return acc for i in seq: acc =function(acc, i) return acc """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): if seq == []: return acc a = 0 for i in seq: a += 1 i = a - 1 while i >=0: acc = function(acc, seq[i]) i -= 1 return acc """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): if seq == []: return seq a = 0 for i in seq: a += 1 i = a - 1 b = [] while i >=0: b.append(seq[i]) i -= 1 return b """Vráti nový zoznam s prvkami v opačnom poradí.""" pass